lie small systems journal
ftoeferr
lire
S4.495.00
/
j-
-^
■Hi
40K Bytes RAM Memory
1,200,000 Bytes Disk Storage
Desk with laminated plastic surface
DOS and BASIC with random and sequential files
TERMINAL-Upper-Lower case and full control character decoding
T
SOUTHWEST TECHNICAL PRODUCTS CORPORATION
219 W. RHAPSODY
SAN ANTON IO, TEXAS 782 1 6 Circle 350 on in
Circle 350 on inquiry carrJ.
/
\
Z-2D
Model Z-2
Up to 512K of RAM/ROM
Model Z-2D
One or two disks
Up to 512K of RAM/ROM
Up to 184K of disk
System Two
Dual disk
Up to 512K of RAM/ROM
Up to 184K of disk
Fill your computer needs
with the industry's
most professional microcomputers
#1 IN RELIABILITY
When you choose Cromemco you
get not only the industry's finest
microcomputers but also the indus-
try's widest microcomputer selec-
tion.
What's more, you get a computer
from the manufacturer that compu-
ter dealers rate #1 in product re-
liability.*
Your range of choice includes
our advanced System Three with
up to four 8" disk drives. Or choose
from the System Two and Z-2D with
5" drives. Then for ROM-based work
there's the Z2. Each of these com-
puters further offers up to Vz mega-
byte of RAM (or ROM).
We say these are the industry's
most professional microcomputers
because they have outstanding fea-
tures like these:
• Z-80A microprocessor — oper-
ates at 250 nanosecond cycle
time — nearly twice the speed of
most others.
Up to 512 kilobytes of RAM and
1 megabyte of disk storage
Rated in The 1977 Computer Store
Survey by Image Resources, Westlake
Village, CA.
il
System Three
Two to tour disks
Up to 512K of RAM/ROM
Up to 1 megabyte of disk
21 card slots to allow for un-
paralleled system expansion us-
ing industry-standard S-100
cards.
S-100 bus — don't overlook how
important this is. It has the in-
dustry's widest support and Cro-
memco has professionally imple-
mented it in a fully-shielded
design.
G
• Cromemco card support of more
than a dozen circuit cards for
process control, business sys-
tems, and data acquisition in-
cluding cards for A-D and D-A
conversion, for interfacing daisy-
wheel or dot-matrix printers, even
a card for programming PROMs.
• The industry's most professional
software support, including FOR-
TRAN IV, 16K Disk-Extended
BASIC, Z-80 Macro Assembler,
Cromemco Multi-User Operating
System — and more coming.
• Rugged, professional all-metal
construction for rack (or bench
or floor cabinet) mounting. Cab-
inets available.
FOR TODAY AND TOMORROW
Cromemco computers will meet
your needs now and in the future
because of their unquestioned tech-
nical leadership, professionalism
and enormous expandability.
See them today at your dealer.
There's no substitute for getting
the best.
Circle 80 on inquiry card.
Cromemco
incorporated
Specialists in computers and peripherals
280 BERNARDO AVE., MOUNTAIN VIEW, CA 94040 • (415) 964-7400
see next T\
page I/
BYTE August 1978
SEE YOUR LOCAL DEALER
Anchorite. AK 99502
ALASKA DIVERSIFIED DIGITAL
I TOO Weil Hnteco Avenue
{907} 277-6312
•Utile Rock, AR 72206
COMPUTER PRODUCTS UNLIMITED
2412 South Broadway
(JOIJ 371 0449
Phoenli.AZ 85021
COMPUTER RESEARCH CORP
2225 W. Mm, View Roid - No. 6
{602)943-8719
Phoenix, AZ BS029
COMPUTER WORLD
22)0 Wen Larkipur
(602) 943-8925
Tucton, ■■.riiiiu 8S716
BYTE SHOP OF TUCSON
2612 E»1 Bruidwly
(602) 127-1579
• Cirion.CA 90746
SUNSHINE COMPUTER COMPANY
20710South Leip wood Avenue
(213)127-2118
•CIlruiHilghti.CA 95610
BYTE SHOP SACRAMENTO
6041 Greenback Line
(916| 9*1-8 YTE
EICerril O ,CA94S30
COMPUTERLAND EL CERRITO
11074 Sin Plblo Avenue
(415) 233-5010
• Fountain Villey, CA 92708
ADVENTURES IN COMPUTING
8756 Wnnei Avenue
(714)848-8188
Freino,CA 93703
BYTE SHOP OF FRESNO
3139 E. McKlnley Avenue
(209)485-2417
Hiywird.CA* 94542
COMPUTERLAND OF HAYWARD
22634 Foothill Boulevard
(415) 51B-8080
Huntington Beich. CA 92647
ALGORITHM PERSONAL COMPUTERS
7561 Rhine Drive
(714) 751-8080
6840 LiCicneii Unuh
.' LOS ANGELES
Liwndilc, CA 92060
BYTE SHOP OF LAWNDALE
6508 i i.iv. Hi,, mi,- Boulevard
(213)171-2421
* Loomn, CA 956S0
KINGMONT ENTERPRISES, INC.
9900 King Roid
(916)988-8189
Lot Angelei, CA 90025
AMERICAN RECORDER COMPANY
1655 Siwtelle Boulevard
(211)477-2063
MenloPirk.CA 94025
COMPUTADATA PROCESSING SERVICE
2225 Shuon Roid - No, 214
Minion Vlejo, CA 92610
COMPUTERLAND SADDLEBACK VLY
24001 Vli Fibrltante - No. 904
(714)77041131
Moraga, CA 945S6
ACCOUNTING BY COMPUTER
1161 Litch Ave.
(415)376-1730
• Mounuln View, CA 94040
BYTE OF MT. VIEW
1061 W. EICiminoRtal
(415)969-5464
Orange, CA 92667
COMPUTER MART
631-B Weil Katella Boulevard
(714)613.1222
Palo Alio, CA 94106
BYTE SHOP PALO ALTO
2227 El Camlno Real
(415) 327-8080
912 Cowper Street
(415)328-1712
Plladena,CA91rOI
BYTE SHOP PASADENA
496 South Like Avenue
1213)684-1111
Plicervllle, CA 95667
GRANITE BUSINESS SYSTEMS
670 Pluunl Villey Roid
{916)626-1161
Sacramento, CA 95816
MICROCOMPUTER APPLICATIONS SYS
2122 Capllil Avenue
(916)4334944
Sin Diego, CA 92111
THE COMPUTER CENTER
B205 Roman Knid
(714) 292-5102
San Fnnciico.CA 94105
COMPUTERLAND Or SAN FRANCISCO
117 Fremont Street
(415)546-1592
•SinFrwelico. CA 94101
THE COMPUTER STORE OF S.F.
1091 Mluion Street
(415)4114)640
Sm Frinelico, CA9411B
THE NETWORK
495 Third Avenue - No. 8
(415)221-1112
•DENOTE5 SYSTEM THREE' DEALER
Sin)oK,CA9S124
BYTE SHOP »3 of SAN JOSE
2626 Union Avenue
(408) 377-46B5
San |me,CA*95123
THE COMPUTER ROOM
124-H Illcmum HIM Rmi!
(408) 226-8381
San|oie,CA*95112
PLANE DATA WORKS
35B4 Mlnto Court
(408) 262*566
Sin Leindro, CA 94577
COMPUTERLAND CORPORATION
14400 Canlini Street
(415) 895-9161
• San Mileo,CA 94401
COMPUTER TERMINAL
309 S. San Mateo Drive
(415)147-9894
•SintlAnl.CA 92705
ADVANCED MICROCOMPUTER PROP
1310EinEd!nger
(714)558-8811
Santi Clara, CA950SI
THE BYTE SHOP OF SANTA CLARA
MODEM .imiiici Real
(408) 249-4221
Santa Monica, CA 90401
THE COMPUTER STORE
820 Broadway
(213)451-0713
•Sunnyulc.CA 94086
RECREATIONAL COMPUTER CENTER
1124 South Mary Avenue
(408)732-3108
Tuilln, CA 92680
nWlULRLANDOFTUSTIN
104 WrU Flnt Street
(714) 544-0542
•VanNuyi CA91411
- van i^uyi, *,« vi-»i I
COMPUTER COMPONENTS
584B Sepulvedi Boulevard
WilnulC<eek,CA 94596
BYTE SHOP COMPUTERS OF D
2989 N Main Street
(415)933-6252
Engkwoud.L
in rr. shop
E SHOP OF ARAPAHO COUNTY
3463 South Acorn a Street
(101)761-6122
Flirf)eld,CT'0643O
COMPUTERLAND OF FAIRFIELD
2475 Black Rock Turnpike
(201) 174-2227
(203) 627-OtBB
Newark, DE 19711
COMPUTERLAND OF NEWCASTLE CIT
Aitro Shopping Center
Ku*v..,..il Highway
(302) 738-9656
Ft. Laude.dile, FL 33134
BYTE OF FT. LAUOERDALE
1044 E. Oiklind Park Blvd.
(305)561-2981
Fl.Liudcrdile,FL13312
COMPUTERS FOR YOU, INC.
1608 W. Broward Blvd.
(305) 581-8945
I'Utiijiiiin. FL 33317
COMPUTERAGE
1400 S.W. 70th Avenue
(105) 79140B0
• Tampa. FL 33609
MICRO COMPUTER SYSTEMS
144 S. D»le Mib.y Avenue
(811) 8794225
• Atlanta, GA 10140
ATLAN1ACOMPUTERMART
5091-UiiLifnrd Highway
(404)455-0647
Mirietli, GA 10060
E0UCA I UINAL DATA SERVICES
79 Oxford Run!
•Honolulu. HI 96815
COMPACT COMPUTERS
105 Royal Hiwiilan. Ste. 407
(808) 371-2751
Kailua.Oihu.HI 96734
MICROCOMPUTER ENTERPRISES
1450 Mokulua Drive
(308)261-3281
Arlington Height!, I L 60004
COMPUTERLAND ARLINGTON HTS.
50 Eait Rand Road
(312)255-6488
Champaign, LL 61820
BYTE SHOP CHAMPAIGN
1602 S.Neil Struct
(217)352-2121
Chicago, 1L 60632
URONSON 4 BRATTON, INC.
5161 S.MIIIird Avenue
(112)715*200
Lltle.lL60532
COMPUTER i CONTROL AFFILIATE
4315 Aralei, No. 401
(312)968-6548
Lombard, II. 60U8
MIDWEST MICROCOMPUTERS, INC.
708 South Main Street
(312) 495-9889
Nipervillr, IL 60540
ILLINI MICROCOMPUTERS
612 EntOgden Avenue
(312)420-8811
Nile). IL 60648
COMPUTERLAND NILES
9511 N, Milwaukee Avenue
(112)967-1714
BYTE August 1978
G
Oak Lawn, IL 60453
LOMI'lJ TEKLANDOF OAK LAWN
10915 South Cicero Avenue
(1121422-8080
Rockford, IL6III11
IMPERIAL COMPU N.R SYSTEMS
2105 - 23rd Avenue
(815) 226-8200
• Bloomlnglon, IN 47401
DATA DOMAIN
406 South College Avenue
(812)334-3607
■Fort Wayne, IN 46805
DATA DOMAIN OF FORI WAYNE
2805 Em State Boulevard
(219)484-7611
Indlinipolli, IN 46268
DATA DOMAIN OF INDIANAPOLIS
7027 Michigan Road
(317) 251-1139
Wen Lafayette. IN 47906
DA I A DOMAIN OF WLS1 LAFAYETTE
219 WrnColuml.li
(117)743-3951
Mliilun.KS 66202
COMPUTER CENTER
5815 Johmon Drive
(913) 432-2983
Overland Park, KS 66206
PERSONAL COMPUTER CENTER, INC.
3819 W. 95lhSlreel
(913)649-5942
Lexington, KY 40501
DATA DOMAIN OF LEXINGTON
506-1/2 Euclid Avenue
(606) 233-3346
Loulivlile. KY 40222
COMPUTERLAND OF LOUISVILLE
Mill Lyndon Lane
(502) 425-8308
Louisville, KY 40220
DATA DOMAIN OF LOUISVILLE
1028 Huoiioger Line
[502) 456-5242
Louisville. KY 40206
PHAC.MATECH
2310 Mellwood Avenue
(502) H95-1230
• Burlington, MAOI803
THE COMPUTER STORE
120 Cambridge Street
(617)272-8770
INTELLIGENT BUSINESS MACHINES
7338 Baltimore, Avenue, Suite 200
(301) 779-7998
• Pikr^ille.MD 21208
MODULAR SYSTEMS. INC
4005 Seven Mile Line
(301)484-6322
• Rockvllle, MD 20852
COMPUTER WORKSHOP
1776 Edit JeMenon
(301)468-0463
Rwkville. MD 20855
COMPUTERLAND OF GAITHERS8URG
160*5 Frederick Road, Route 155
(Kill 948-7676
Silver Spring, MD 20901
CAM ENGINEERING, INC.
'Mill W.iiiIi Avenue
(301)589-1779
•Towion.MD 21204
CUMI'lirERSETC
13-A Allegheny Avenue
(101| 296-0520
Ann Arbor, Ml 48104
NEWMAN COMPUTER EXCHANGE
1250 North Main Street
(313)9944445
Ann Arbor, Ml 48104
THE COMPUTER STORE
HOEitt Waihlniilon
(313(995-7616
Ann Arbor, Ml 48104
UNITED MICROSYSTEMS CORP
2601 South Stale Street
(313) 66S-6B06
•Berrien Spring*, Ml 49101
THE ABACUS
Route No. I, Bo. 193,(Nllci Avenue]
(616) 429-1014
Grand Rapidi, Ml 49508
IEP5AN, GROUP K
4706 Morningiide Drive.S.E.
(616)698-9057
RoyilOik,MI48071
COMPUTER MART OF ROYAL OAK
1800 Weil 14 Mile Road
(313) 576-0900
Edina.MN 55415
COMPUTER PEPOT, INC
1515 Wen 70th Street
(612)927-5601
Cheiterlield. MO 61017
COMPUTER SYSTEMS CTR ST. LOUIS
11461 Olive Boulevard
(114)576-5020
Like St. Louli, MO 63367
DATA DYNAMICS, INC.
UWOLakeSi.nl Blvd. , Str. 324
1114)625-2400
Naihua, NH 01060
COMPUTERLAND 01 NASHUA
419Amheril
(601)889-5238
Huboken, N] 07010
HOBOKEN COMPUTER WORKS
No. 20 Hudion Place
(201)4201644
•Ivclln, Nj 08810
COMPUTER MART OF NEW JERSEY
501 Route No. 27
(201) 2f
Merrlflown, N| O7960
COMPUTERLAND Of MORRTSTOWN
2 Do Hirt Strecl
(201)5394077
Reno, NV 89502
BYTE SHOP OF RENO
(702)826-8081)
1612 Niagara Falli Boulevard
(716)816*511
CORSON COMPUTER CORP., INC.
IBM Main Street
(716)8120662
De Witt, NY 11214
COMPU 1 1 I! LM [.UPRISES
3470 Erie Boulevard East
(115)446-1284
SYNCHRO-SOUND ENTERPRISES
193-25 Jamaica Avenue
(212)468-7067
Ithaca, MY 14850
COMPUTERLAND OF ITHACA
225 Elmiu Road
|607| 27748B8
New York City. NY 10016
HYTT SHOP EAST
130 E. 40th Street
(21 2) 8894204
• Urwrinnjii. OH 4S409
DIGITAL DESIGN
7694 Camargo Rd. (MidlenJ
(513)561-6711
1513)223-2348
Kent, OH 44240
OHIO MICRO SYSTEMS
233 Soulli Witer Street
(216)678-5202
Oklahoma City. OK 73106
HIGH TECHNOLOGY
1611 Northwest 21rdSlreet
(405) 528-6008
Beivenun. OR 97005
BYTE SHOP OF BEAVERTON
1482 S.W Cedar Hlllt Boulevard
(503)644-2687
Eugene. OR 97401
REAL OREGON COMPUTER CO.
205 Welt Tenth Street. P.O. tin . 52
(503)484-1040
• Tualatin, OR*97062
CREATIVE SYSTEMS
8101 S.W. NybergRoad
(503) 638 8406
Allison Park, PA 15T0I
R. DON KRIGGER
9180 Springfield Drive
(412)1644945
Huntington Valley, PA 19006
MAKKI MINI SYSTEMS, INC.
2337 Philmum Avenue
(215)947*670
King of PruHia.PA 19406
COMPUTER MART OF PENNSYLVANIA
550 DeKalb Pike (Route 202)
(21S) 265-2580
7250McNlght Road
Warwick, Rl 02886
COMPUTER POWER, INC.
1800 Poil Roid
(401) 7184477
• Columbla.se 29205
BYTE SHOP OF COLUMBIA
2018 Green Street
(803) 771-7824
Memphli. TN 38101
COMPUTER STORE
2162 Cour Hand Plice
(901)274-1938
Naihvrlle, IN 37206
COMPUTER WORLD
625 Main Street
(615(244*094
•Naihvllle.TN 17211
SURYA CORPORATION
5755 Nulemville Rmd
1615)834-5638
Amarillo, TX 79109
COMPUTER CORNER. INC.
1800 South Georgia St. . No. 1
(806)151-4194
• Auitin.TX 78711
COMPUTERS'N THINGS
2825 Hineuck Drive
(512)453-5970
• CorpuiChtliti,TX 7B411
MICRO SYSTEMS SERVICES, INC.
5101 Everlian, Spice H-P.O. Box 6515
(512)8554516
■Dallii. TX 75241
COMPUSHOP
21 1 Keyjton Park. 11931 Nnrth Central
(214) 234-3411
•Houtlon.TX 77057
COMPUTERLAND OF S.W. HOUSTON
6439 Weithelmer
[713)9774)909
•HoUiton,TX*770O6
COMPUIERTEX
2100 Richmond Avenue
(711) 126*914
Houiton, TX 77036
INTERACTIVE COMPUTERS
7646-1/7 Daihwood. P.O. Bat 16584
(711)977-7017
Cromemco
incorporated
Specialists in computers and peripherals
280 BERNARDO AVE., MOUNTAIN VIEW, CA • (415) 964-7400
• Houtlon.TX 77098
THE MOS
1851 Richmond Avenue
(711) 527-SOOS
Lubbock, TX 79412
COMPUTER MART OF W TEXAS
3506 D Avenue, Q
(606) 765-7134
Rlchardton, TX 75080
THE MICRO STORE
614 South Central Expreuwiy
(214)231-1096
Provo.UT 84601
THE COMPUTER WORKS
735 South Sine Street, P 0. Box N
(801)371-7522
Alexandria VA 22104
COMPUTERS PLUS, INC.
678 S. Pickett Street
(701) 751-5656
McLein.VA 22101
COMPU TER SYSTEMS STORE
1984 Chiln Bridge Roid
(703) 821-8331
Seattle, WA 981 15
THE RETAIL COMPUTER STORE
410 NE. 72nd Street
(206) 5244101
•Appleton.WI 54911
SOUND WORLD, INC.
3015 W. Wiieontin Avenue
(414) 714-7698
Milwaukee. Wl 51208
MILWAUKEE COMPUTER STORE
4710 Welt North Avenue
(414)4454280
•Racine. Wl 51405
COLORTRON TV
2111 Lath top Avenue
(414)637-2001
INTERNATIONAL •
SONTROM INSTRUMENTS
17 An* am Street
56043118
Croydon, Vict., Auitnlli, 3136
COMPUTER ART & EDUCATION
2 Stephen Creicent
Prahran, Victoria, Auitralia, 1181
GEMINI MICRO COMPUTERS
P.O. Box 99
Wet! Perth, 6005. W. Auil'l'l
AUSTRALIAN COMPUTER PRODUCTS
1100 Hay Street
(09L122-6497
• A-240lFiinamen
KREBSGES. M.E
Hilnburger Stnbi
03232681 8221
Montreal, Quebec, Can. II in 3C9
FUTUR BYTE, INC
1191 Phillip* Squire
(514)861-3120
Toronto, On!., Can. M4G 1B5
COMPUTER MART. LTD.
1543 Bayview Avenue
(416) 484-9708
Toronto, Out., On. M4R 1A1
FIRST CANADIAN COMPUTER STORE
44 Eilinlon Avenue Wen
(416)482-8080
Toronto, One, Can. MS Y 121
TRINTRON1C5. LTD.
186 Queen Street Weil
(416) 59843260
• Lllllr Paitnn, Huntingdon. Cainbi
Camb.., EnglindPEIWNI
COMART LIMITED
24A Market Squire
0480-215-005
Pirli 75017, France
COMPUTER BOUTIQUE
149 Avenue de Wagrun
Chiyodi-Ky, Tokyo 101. |ipan
BYTE SHOP SOGOH
l**Sotokindi
03 255-1984
Kaihlwa City Chibi Pf. 277, |ipan
BELLKEYTEC. INC
5-9.2-Chome Kip
Tokyo 106, Japan
IEE CORPORATION
4-33, 3-Chome. Ropongl, Mlniioka
(03) 585-2311
Mikiti, Rinl. The PhHIIplnct
DECISION SYSTEMS CORP.
ISOAmonoloSt iPiuvRd.
Legiipl Village
• tO052 Stockholm 29. Sweden
DATORISERING KONSULT AH
Full 3
4051 bawl. Swltierlind
EUREX.INC
Belnwller Str. T3
061-157069
•Hlltrun 4400, Mumtw, W. Germany
BASIS MICROCOMPUTER VERTRIEB
Von-Flotow-Strabe 5
025014800
• 2000 Wedd, Hpneln, W. Germany
DIGITRONlctOMPUTERSYSTEME
Circle 80 on inquiry card.
In the Queue
50
78
143
156
24
64
90
96
110
122
166
168
4
6
10
12
16
46
48
62
89
117
118
177
206
208
208
Foreground
COMPILATION AND PASCAL ON THE NEW MICROPROCESSORS
Tu torial—Forsy th -Ho ward
PASCAL: A Structurally Strong Language
Languages— A Ipert
DESIGNING STRUCTURED PROGRAMS
Programming Techniques— Weems
LET YOUR FINGERS DO THE TALKING: Adda Noncontact Touch Scanner
Hardware— Ciarcia
Background
ON BUILDING A LIGHT-SEEKING ROBOT MECHANISM
Robotics Applications— Allen-Rossetti
THE NUMBER CRUNCHING PROCESSOR
Hardware— Nelson
PHILADELPHIA'S 179 YEAR OLD ANDROID
History— Penniman
ANTIQUE MECHANICAL COMPUTERS, Part 2
History— Williams
IN PRAISE OF PASCAL
Software— Mundie
PASCAL VERSUS COBOL: Where Pascal Gets Down to Business
Software— Bowles
JACPOT
Games— Hastings
PASCAL VERSUS BASIC: An Exercise
Software— Sen wartz
Nucleus
BITE August 1978
Volume 3 Number 8
In This BYTE
A Vision of an Industry
Letters
Technical Forum: A Letter Exchange: Extending S-100 Bus?
And Some Notes by John C McCallum
About the Cover
Languages Forum: A Homebrew Pascal Compiler
Clubs, Newsletters
BYTE's Bugs
Consistency — or a Lack Thereof. . .Notes by C Helmers
Languages Forum: A Proposed Pascal Compiler
Event Queue
What's New?
Unclassified Ads
BOMB
Reader Service
BYTE is published monthly by BYTE Publications Inc. 70 Main St, Peterborough NH 03458. Address all mail except sub-
scriptions to above address: phone (603) 924-7217. Address all editorial correspondence to the editor at the above address.
Unacceptable manuscripts will be returned if accompanied by sufficient first class postage. Not responsible for lost manu-
scripts or photos. Opinions expressed by the authors are not necessarily those of BYTE. Address all subscriptions, change of
address. Form 3579. and fulfillment complaints to BYTE Subscriptions, PO Box 590. Martinsville NJ 08836. Second class
postage paid at Peterborough NH 03458 and at additional mailing offices-USPS Publication No. 102410. Canadian second
class registration No. 9321 . Subscriptions are $15 for one year, $27 for two years, and $39 for three years in the USA and its
possessions. In Canada and Mexico, $17.50 for one year, $32 for two years, and $46.50 for three years. $25 for a one year
subscription by surface mail worldwide. Air delivery to selected areas at additional rates available upon request. $25 for a one
year subscription by air delivery to Europe. Single copy price is $2.00 in the USA and its possessions, $2.40 in Canada and
Mexico, S3. 50 in Europe, and $4.00 elsewhere. Foreign subscriptions and sales should be remitted in United States funds.
Printed in United States of America. Each separate contribution to this issue and the issue as a collective work copyright ©
1978 by BYTE Publication Inc. All rights reserved.
Subscription WATS Line: (800) 258-5485
PUBLISHERS
Virginia Londoner
Gordon R Williamson
EDITOR IN CHIEF
Carl T Helmeis |r
VICE PRESIDENT, PRODUCTION
Judith Havey
PRODUCTION MANAGER
Karen Gregory
ADVERTISING DIRECTOR
John Hayes
CIRCULATION MANAGER
Gregory Spitzfaden
SENIOR EDITOR
Christopher P Morgan
COMPTROLLER
Michael Gaian
EDITOR
Raymond G A Cote
PRODUCTION EDITORS
David William Hayward
Nancy Salmon
NEW PRODUCTS EDITOR
CLUBS, NEWSLETTERS
Laura A Hanson
ASSISTANT TO COMPTROLLER
Ruth M Walsh
EDITORIAL ASSISTANT
Becky Liffick
ADVERTISING
Noreen Bardsley
lillCallihan
Patricia Clark
PRODUCTION ASSISTANT
Cheryl A Hurd
CIRCULATION ASSISTANTS
Sarah Bauhan
Christine Dixon
Ann Graves
Pamela R Heaslip
DEALER SALES
Ginnie F Boudrieau
TRAFFIC MANAGER
Thomas Harvey
PRODUCTION ART
Stephen Kruse
Wai Chiu Li
Dorothy Shamonsky
Ellen Shamonsky
RECEPTIONIST
Jacqueline Earnshaw
DRAFTING
Techart Associates
TYPOGRAPHY
Goodway Graphics
PHOTOGRAPHY
Ed Crabtree
PRINTING
The George Banla Company
ASSOCIATE EDITOR
Daniel Fylstra
ASSOCIATES
Walter Banks
Steve Ciarcia
David Fylstra
Portia Isaacson
BOOK DIVISION
PUBLISHER
Thomas | Herman
SENIOR EDITOR
Blaise W Liffick
PRODUCTION MANAGER
EdmondC Kelly |r
ASSISTANT EDITOR
Richard Shuford
ADVERTISING SALES REPRESENTATIVES:
EAST, MIDWEST
Hajar Associates Inc
1 7 Durant St
West Ronbury MA 02132
(617)325-5380
100 W Chicago Av
Chicago IL 60610
(312)337-8008
WEST, SOUTHWEST
Buckley /Boris Associates Inc
912 South Barrington. Suite 202
Los Angeles CA 90049
(213I82M621
DISTRIBUTORS:
EASTERN CANADA
RS-232 Distribution Company
186 Queen St W. Suite 232
Toronto ONTARIO
WESTERN CANADA
Kitronic Ltd
26236 26th AvRR 5
Aldergrove BC VOX 1A0
August 1978 ©BYTE Publications Inc
In This EWE
What are readers' experiences with
building actual robotic mechanisms?
Stephen A Allen and Anthony J
Rossetti's commentary On Building
a Light-Seeking Robot Mechanism
describes their work in this area on
an undergraduate engineering project.
An on board computer helps their
robot decide what action to take when
avoiding obstacles between it and a
light source.
page 24
Until now microprocessor users had
the choice of using either an 8 bit or a
16 bit processor. With the advent of
the 6809, Z-8000 and 8086, we now
have available a hybrid machine with
both 8 and 16 bit capabilities. This
may have an effect on how language
are written on the processors. Charles
H Forsyth and Randall J Howard take
a look at this in Compilation and
Pascal on the New Microprocessors.
page 50
Do you need to perform extensive
mathematical calculations, but fret
over the time needed to write, debug
and use floating point operations and
transcendental functions? The new
National Semiconductor MM57109
processor will help you with this
problem. Turn to The Number
Crunching Processor by Peter Nelson
for details on how to interface an
MM57109 with an 8080 system, and
a review of this unique processor.
page 64
Pascal is the fastest growing new
computer language. Few languages
have the support from the typical
university computer science depart-
ment that Pascal has. To find out more
about this fascinating language read
Steven R Alpert's article, Pascal,
a Structurally Strong Language.
page 78
A 179 year old android that can
draw pictures and write poetry? It
may sound like science fiction, but
The Franklin Institute's Charles F
Penniman reveals all in Philadelphia's
1 79 Year Old Android. page 90
This month we continue Dr James
Williams' 3 part series on Antique
Mechanical Computers with Part 2:
18th and 19th Century Mechanical
Marvels. Read about Jacquet-Droz's
incredible writing and drawing auto-
maton that contains the equivalent
of three quarters of a million bits of
read only memory and can draw in-
tricate pictures and transcribe poetry.
page 96
Using a structured language such as
Pascal helps the programmer easily
organize the logic of a program. Often,
it is not necessary to write a logic dia-
gram for the program. To this end,
David Mundie compares a well written
Pascal program to a Warnier-Orr logic
diagram in his article In Praise of
Pascal. page 110
Business applications for personal
computers are more and more in evi-
dence these days. Pascal lends itself
well to business applications with the
addition of some special features
described by Ken Bowles in Pascal
versus COBOL. page 122
One of the newest developments in
software is structured programming.
Many features of the technique have
been described, but often the actual
procedure for constructing a struc-
tured program is not mentioned.
Chip Weems describes the steps in-
volved in Designing a Structured
Program.
page 143
Light pens are one way to improve
the user-computer interface, but
there's an even more direct way: a
noncontact scanning digitizer. Simply
touch the screen of your video display
to enter information! Steve Ciarcia
shows you how in Let Your Fingers
Do the Talking: Add a Noncontact
Touch Scanner to Your Video Display.
page 156
If you like to gamble, but don't
want to wait for legalized gambling in
your state, try JACPOT. Author
Edwin Hastings has written a straight-
forward BASIC simulation of a slot
machine. Now you can gamble (for
fun only, of course) to your heart's
content without depleting your bank
account. You can lose everything
and then turn around and lose it again!
page 166
Pascal is an exciting language that
can help you program more effi-
ciently. It was developed in 1969
as an extension of the ALGOL family
of languages. Author Allan Schwartz
compares Pascal to BASIC, a language
familiar to many BYTE readers, in
Pascal versus BASIC: An Exercise.
page 168
August 7978 ©BYTE Publications Inc
Identical twins...almost.
This one prints.
$395.
This one prints & plots.
$795.
In 1977, AXIOM pioneered low-cost
electrosensitive line printing, setting an
example which others have been quick
to follow.
However, we believe that once you
are the market leader, you should stay
out in front. So we're proud to announce
the birth of two exceptional new
products, the EX-801 MicroPrinter
and the EX-820 MicroPlotter which set
new standards for versatile low-cost
hardcopy.
These babies are beautiful , housed in
sleek molded cases designed by the
award-winning Inova design group. But
beauty is more than skin deep. Each
unit is packed with unique features. Like
serial RS232C/20mA and parallel ASCII
inputs as standard. Reverse printing.
Oversized input buffers. Expandable
character sets. User program memory
for real "intelligence."
Twins, yes, identical, not quite. . . .
Meet the MicroPrinter
Here's the answer to a micro (or mini)
computer's fondest dreams. Designed
around the Intel 8048 microprocessor,
the EX-801 MicroPrinter operates to
160 cps (that's 14 times faster than a
TTY), and gives you the choice of 3
intermixable character sizes to provide
80, 40 or 20 columns on 5-inch wide
electrosensitive paper, making this
printer ideal for CRT hardcopy, data
logging, remote message printing,
program listing, record keeping ... In
fact, any application needing fast,
low-cost copy.
Introducing the MicroPlotter
Our EX-820 MicroPlotter does
everything the EX-801 does — plus it
plots. Under software control, you have
unlimited flexibility to mix alphanumeric
ASCII and graphics on any line. Just
define the size of each graphic field,
and choose from 3 pre-programmed
dot resolutions up to 128 dots per inch.
Once the fields have been defined, the
EX-820 automatically formats graphic
and alphanumeric printouts to
your specs.
Complete stand-alones
The EX-801 and EX-820 are both
complete stand-alone units, including
molded case, power supply, parallel
ASCII and Serial RS232C/20mA
interfaces, character generator, low
paper detector, bell, built-in self tester
and paper roll holder. Not to mention
a whole range of fantastic low-cost
options like 2K character buffer, 256
character set and user PROM memory.
Any questions???
OEM discounts? The above prices
are single quantity end-user. If you're
an OEM they sound even better.
Distributors? Everywhere in the USA
and in 18 overseas countries. Service?
Just call one of our 20 nationwide
service centers. Maintenance? Minimal.
The printhead is self-adjusting and
there are no inky ribbons to change.
MTBF? 11.6 million lines. Need we
say more?
Whether you need sophisticated
graphics or simple printout, AXIOM
still has the lowest cost, highest
performance printers in the field — so
we're still the market leaders. Phone or
write today for the whole story on our
almost identical twins.
AXIOM CORPORATION
5932 San Fernando Rd ., Glendale, CA 91202
(213) 245-9244 • TWX: 910-497-2283
Circle 18 on inquiry card.
BYTE August 1978
Editorial
A Vision of an Industry
By Carl Helmers
Based on a computer
graphic suggestion by
students Joel McCormack
and Owen Hampton at
UCSD, we arranged with
Russell Myers for this
statement of an extreme
opinion about Pascal. . . .
In mid-March of this year, I finished a
trip to the West Coast by having a day long
meeting with Ken Bowles and his associates
at the University of California, San Diego.
The purpose of this meeting was to explore
some of the possibilities which arise from
the standardization of extensions to Niklaus
Wirth's language Pascal, and the equally
important implications of the technology of
intermediate languages such as the optimized
form of "P-code" developed at UCSD.
I came to this meeting with a background
of familiarity with the reasons for encour-
aging highly structured languages such as
Pascal. Before starting BYTE, I had been
involved with the NASA HAL/S language
developed by my employer of the time,
Intermetrics Inc of Cambridge MA. I lived
and breathed considerations of software
reliability, ease of program design and the
conceptual economy of a detailed program
representation which doubles as the docu-
mentation of the algorithm. My personal
experiences were with the context of the
need to "man rate" the flight software of a
"UCSD Pascal'
contemporary spaceship through the use of
high reliability software tools and techniques.
These points are made elegantly in a number
of books and papers which have been
published on the subject to date.
What came out of this meeting with Ken
Bowles is a vision of an important synthesis
of machine independent software representa-
tions, the technology of printing machine
readable software on paper, and the distribu-
tion of software in the form of convention-
ally printed and bound publications. It is a
vision of what the software publishing
business could look like over the course of
the next few years.
Out of this vision of a machine independ-
ent software publishing industry comes a
serendipitous justification for support of
Ken Bowles' efforts to establish a "band-
wagon" effect of support for the Pascal
language and machine independent software
systems. The purpose of this essay is to
discuss the present dimensions of the soft-
ware publishing problem, the technology
which exists for preparing and printing
machine readable representations, and the
vision of machine independent software
publishing which Ken Bowles and I saw
inherent in the Pascal P-code technology as
we discussed it that day.
Publishing Software
As the users of the personal computer
expand in number, the means of distribution
of software become critical to those who
would distribute such software. In personal
computing we are faced with a kind of
problem which is completely new in the
computer industries: the number of machines
installed is becoming incredibly large by
standards of the past 20 years, and the price
paid per unit installation is becoming incred-
ibly small. The computers which are a
potential market for software are in the
initial stages of becoming a mass market: too
large a market for the custom craftsmanship
of the traditional software vendor. To be
convenient for the customers programs must
be distributed with a machine readable copy
which eliminates the need for hand key-
Continued on page 133
6 Augusl 1978 © BYTE Publications Inc
PASCAL
THE NMS'85 SEW
NORTHWEST MlC jflfigjyl PUT
121 EAST ELEVENTH. EUGENE, OREGON 97401 (503)485-0626
Circle 286 on inquiry card.
BYTE August 1978 7
Sol Terminal Computer
The answer is a
It's the serious
solution to the
small computer
question.
Sol Systems are the key to effective, economical
small computer power. Sol Systems give you the force of a
powerful general purpose computer, the problem solving
capability of high level languages and the operational simplicity
of everyday office equipment.
From the ground up, Sol Systems were designed to do
a complete job without adding a load of costly extras. In fact,
when you compare the "everything included" price of
a quality, field proven Sol System with anything else on the
market, you'll be happily surprised to find out how little
the extra performance and convenience costs.
For example, complete Sol Systems with 16,384 bytes
of RAM memory start at less than $2500? Expanded systems
with 49,152 bytes of RAM memory, 1.5 million bytes of
on-line disk memory, disk operating system and Extended
Disk BASIC cost less than $8000? Both systems are fully
assembled, burned-in, tested and ready to go.
Sol Compatibility
Sol Systems feature the S-100 bus for pin-to-pin
compatibility with a wide variety of add-on devices such as
voice input and computer graphics. Standard Sol
parallel and serial interfaces will drive most standard printers,
modems and other peripherals.
A word about languages
No system is complete without software, and at Processor
Technology we have tailored a group of high level languages,
an assembler and other packages to suit the wide capabilities
of our hardware.
Take a look at our exclusive Extended BASIC as an example.
In cassette form, this BASIC features string and advanced
"U.S. prices only.
Sol System.
file handling, special screen commands, timed input, complete
matrix, logarithmic and trigonometric functions, exponen-
tial numbers, 8 digit precision and square root. The language
handles serial access files, provides tape rewind and
offers cursor control for graphics capability.
The disk version has all the number crunching talents
of the cassette BASIC plus instant access to data and programs
on floppy disks. It includes random as well as sequential
files and a unique ability to update sequential data in place.
Processor Technology FORTRAN is similar to FORTRAN IV
and has a full set of extensions designed for the "stand alone"
computer environment. Thousands of special application
programs available through books and periodicals have already
been written in this well established language.
Processor Technology PILOT is an excellent language
for teachers. It is a string-oriented language designed expressly
for interactive applications such as programmed instruction,
drill and testing.
No wonder we call it the serious solution
to the small computer question.
It's the small computer system to do the general ledger and
the payroll. Solve engineering and scientific problems.
Use it for word processing. Program it for computer aided
instruction. Use it anywhere you want versatile
computer power!
Sold and serviced only by the best dealers.
Sol Systems are sold and serviced by an outstanding group
of conveniently located computer stores throughout the
United States and Canada. They are also available in Australia,
Europe, the United Kingdom, Central America, South
America, Japan and Singapore.
For more information contact your nearest dealer listed on
the following page. Or write Department B, Processor
Technology Corporation, 7100 Johnson Industrial Drive,
Pleasanton, CA 94566. Phone (415) 829-2600.
Circle 305 on inquiry card.
ProcessorTechnology
Your
Sol dealer
has it.
AL Birmingham: ICP. Computerland, 1550-D
Montgomery Hwy, (205)979-0707. AZ: Tempe:
Byte Shop, 1425 W. 12th PI., (602)894-1129;
Phoenix: Byte Shop, 12654 N. 28th, (602)
942-7300; Tucson: Byte Shop, 261 2 E. Broadway,
(602)327-4579. CA: Berkeley: Byte Shop,
1514 University, (415)845-6366; Costa Mesa:
Computer Center, 1913 Harbor, (714)
646-0221; Hayward: Byte Shop, 1122"B"St.,
(415)537-2983; Hayward: Computerland of
Hayward, 22634 Foothill Blvd., (415)538-8080;
Lawndale: Byte Shop, 16508 Hawthorne.
(213)371-2421; Mt. View: Byte Shop, 1063 El
Camino, (415)969-5464; Mt. View: Digital
Deli, 80 W. El Camino, (415)961-2670; Orange:
Computer Mart, 633- B W. Katella, (714)
633-1222; Pasadena: Byte Shop, 496 S. Lake,
(213)684-3311; Sacramento: Micro-Computer
Application Systems, 2322 Capitol. (916)
443-4944; San Francisco: Byte Shop, 321 Pacific.
(415)421-8686; San Jose: Byte Shop, 2626
Union, (408)377-4685; San Rafael: Byte Shop,
509 Francisco, (41 5)457-931 1;Tarzana: Byte
Shop, 18424 Ventura. (213)343-3919; Walnut
Creek: Byte Shop, 2989 N. Main, (415)933-6252.
CO; Boulder: Byte Shop, 3101 Walnut.
(303)449-6233; Denver: Byte Shop, E. 1st Ave. &
University. (304)399-8995. FL: Ft. Lauderdale:
Byte Shop, 1044 E. Oakland Pk., (305)561-2983;
Miami: Byte Shop, 7825 Bird, (305)264-2983;
Tampa: Microcomputer Systems, 144 So. Dale
Mabry. (813)879-4301. GA; Atlanta: Computer
Mart, 5091-B Buford, (404)455-0647. IL:
Champaign: Computer Co., 318 N. Neil. (217)
359-5883; Numbers Racket, 623'/2 S. Wright,
(217)352-5435; Evanston: itty bitty machine co.
1322 Chicago, (312)328-6800; Schaumburg:
Data Domain, 1612 E. Algonquin, (312) 397-8700.
IN: Bloomington: Data Domain, 406S. College.
(812)334-3607; Indianapolis: Data Domain, 7027
N. Michigan, (317)251-3139. IA: Davenport:
Computer Store, 4128 Brady. (319)386-3330.
KS: Overland Park: Personal Computer Center,
3819 W 95th St., (913)649-5942. MA: Boston;
Computer Warehouse Store, 584 Commonwealth,
(617)261-2700. MD: Towson: Computer Etc..
1 3A Allegheny, (301 )296-0520. Ml: Ann Arbor:
Computer Store, 310 E. Washington, (313)
995-7616; East Lansing: General ComputerStore,
1310 Michigan. (517)351-3260; Troy: General
Computer Store. 73 W. Long Lake Rd., (313)
689-8321 . MN: Minneapolis: Computer
Depot, 351 5 W. 70th, (61 2)927-5601 . NJ: Cherry
Hill: Computer Emporium, 2438 Route 38,
(609)667-7555; Hoboken: Computer Works. 20
Hudson PL, (201)420-1644; Iselin: Computer
Mart, 501 Rt. 27, (201)283-0600. NYl Endwell:
The Computer Tree, 409 Hooper Rd., (607)
748-1 223; New York:Computer Mart, 118 Madison,
(212)686-7923; White Plains: Computer
Corner, 200 Hamilton. (914)949-3282. NC:
Raleigh: ROMs N' RAMs, Crabtree Valley
Mall, (919)781-0003. OH: Columbus: Byte Shop.
2432 Chester, (614)486-7761; Dayton:
Computer Mart. 2665 S. Dixie, (513)296-1248.
OR: Beaverton: Byte Shop, 3482 SW Cedar
Hills, (503)644-2686; Eugene: Real Oregon
Computer Co., 205 W. 10th, (503)484-1040;
Portland: Byte Shop, 2033 SW 4th Ave., (503)
223-3496. Rl: Warwick: Computer Power,
M24 Airport Mall, 1800 Post Rd., (401)738-4477.
SC: Columbia: Byte Shop, 2018 Green,
(803)771-7824. TN: Kingsport: Microproducts
& Systems, 2307 E. Center, (615)245-8081.
TX: Arlington: Computer Port. 926 N. Collins.
(817)469-1502; Arlington: Microstore,
312 W Randol Mill Rd., (817)461-6081; Houston:
Interactive Computers, 7646/2 Dashwood,
(713)772-5257; Lubbock: Neighborhood
Computer Store, 4902-34th St., (806)797-1468;
Richardson: Micro Store, 634 So. Central
Expwy, (214)231-1096. VA: McLean: Computer
Systems Store, 1984 Chain Bridge. (703)
821-8333; Virginia Beach: Home Computer
Center, 2927 Va. Beach Blvd., (804)340-1977.
WA: Bellevue: Byte Shop, 14701 NE 20th,
(206)746-0651; Seattle: Retail Computer Store,
410 NE 72nd, (206)524-4101. Wl: Madison:
Computer Store. 1863 Monroe, (608)255-5552;
Milwaukee: ComputerStore, 6916 W. North,
(414)259-9140. D.C.: Georgetown Computer
Store, 3286 M St. NW, (202)362-2127.
CANADA: Toronto, Ont: Computer Mart, 1543
Bayview, (416) 484-9708; First Canadian
Computer Store, 44 Eglinton Ave. W, (416)
482-8080; Vancouver, B.C.: Basic Computer
Group, 1438 W 8th, (604)736-7474; Pacific
Computer Store. 4509 Rupert. (604)438-3282.
Processor
HIDDEN GOLD IN THE TI-59?
In regard to "hidden gold" in the
TI-59 (Webb Simmons' letter-interview,
March 1978 BYTE, page 133) the only
things I've come across after extensive
investigation are the following:
1. According to the manual, the
"decrement and skip on zero" instruc-
tion only references memories 00 to 09
(ie; the instruction may only be fol-
lowed by a single digit for the memory
reference). In fact, any available memory
can be used, except for 40, which hap-
pens to be the numerical code for an
indirect memory reference. You have to
use the editing functions or some other
trick to jam the 2 digit number in, but
this isn't too much trouble; in the in-
direct mode, memory 40 may also be
used, and there's no jamming problem at
all.
2. This one is hardly hidden, but
apparently (judging by the Tl programs
that came with the calculator) Tl's
designers didn't know about it: to make
the display flash without altering any-
thing else (including the contents of the
display), the sequence "2nd operation
99" does very nicely; actually, "2nd
operation anything larger than 39."
James G Owen
951 Dryden Rd
Ithaca NY 14850
TEXT EDITING
I sympathize and agree with your
essay on the need for sophisticated text
editing (March 1978 BYTE, page 6).
I am a full-time writer who spends a
great deal of time at my correcting
Selectric II and who would appreciate
technology which would eliminate cross-
ing out and retyping my manuscripts as
I unscramble the words that first poured
out.
At some point, I send these sheets to
a typist, and they come back finished.
That, too, could be eliminated by a text
editor controlling a fancy typewriter.
But I need even more the ability to
write and edit on a video screen, then
call for a final printout of the text on a
hands off basis.
I could buy a text editor, but I want
further computer capability to keep
track of my potential outlets to ease the
process of writing query letters, to
store and sort random ideas for later
printout as fairly cohesive outlines, and
to store many standard paragraphs for
compilation into letters and replies to
advertisements.
Please keep me informed of your
progress in your quest for quality editing
at an affordable price.
Robert A Moskowitz
403 W School House Ln
Philadelphia PA 19144
A POINT OF INTEREST.. .
While waiting for somebody to build
a system cheap and intelligent enough
for me I read your paper with great
interest. Amusingly, BYTE is the only
English magazine I have seen which turns
the text on the side of the cover upside
down.
Mats Liljedahl
Kalenderv 31
415 11 SWEDEN
And, you will notice, starting with
the January 1978 BYTE, we did a
180° flip of the binding edge notation.
Consistency was viewed as a virtue
within the context of one year's worth
of BYTE after we discovered the orien-
tation of the binding text in the January
1977 issue! . . .CH
DMA AND VIDEO: ARTICLES
NEEDED
How about running a review or an
article on direct memory access (DMA)
in microprocessors? We video hacks
would like to read how to sort out
manufacturers' specs, how to work
around their design "lemons," and how
to make multichannel DMA work
effectively towards fancy pictures.
Dr W R Levick
Dept of Physiology
John Curtin School of Medical Research
POB 334
Canberra City AUSTRALIA (ACT 2601 )
A MORE INEXPENSIVE DIRECT
VIDEO CONVERSION?
I read with interest the article by
Dan Fylstra about converting a TV set
into a monitor (May 1978 BYTE, page
22). With all due respect to the author,
Continued on page 120
10 byte Augusr 1978 Circle 305 on inquiry card.
Microcomputer
System Solution.
Announcing thelMSAI VDP40.
• Fully integrated video data processor in a
single cabinet.
• Twin floppies, professional keyboard,
S-100 expansion slots.
• 24 line by 80 char. CRT, insert/ delete,
programmable font, protected fields,
inverse video.
Handsome flip-top cabinet for easy access.
Serial and parallel I/O ports included.
» FORTRAN IV, Extended and Com-
mercial BASIC.
EVIDOS. r
ISAM. r 33XrS
.**
You've decided you want a microcomputer
DP center — but what to buy? A component
system? A computer box here, a CRT box
there, a keyboard box, a floppy disk box . . .
A so called inexpensive $695 system? No
disk; no way to add enough memory . . . and
if you could, it's not inexpensive anymore;
and you still wind up with a collection of
boxes.
The IMSAI VDP-40 is a fully integrated
Video Data Processing system and comes
equipped with your choice of 32K or 64K
RAM on our own advanced RAM III board.
In one cabinet, the VDP-40 combines a
professional keyboard, heavy-duty power
IMSAI Manufacturing Corporation,
Dept. EWN, 14860 Wicks Boulevard
San Leandro, CA 94577
(41 5) 483-2093 TWX 91 0-366-7287
supply, twin mini-flop-
pies, a multi-slotted mother-
boards-inch CRT, plus RAM at a
new price/performance never before
achieved.
System Expansion? Extra slots in our
S-100 bus motherboard and our new power
supply allow almost unlimited expansion.
Need more disk expansion? A controller
option of the VDP-40 allows expansion to
greater than 4.5M Bytes.
Add a line printer, an IBM compatible tape
drive, a modem: all are available, with the
interfaces and software to make it work for
you.
IMSAI EUROPE
Europa Terrassen
8 Rue Jean Engling
Dommeldange, Luxembourg
43-67-46 Telex: 1428
^^^^^ IMSAI's VDP-40
price/performance means every
home or business can now afford a
complete DP center. Check us out. IMSAI
has what you want and what you need. Visit
your dealer or write us directly.
Features subject to change without notice.
®
MJ
The Standard of Excellence
In Microcomputer Systems
Price/Performance no one else has put together.
Circle 1 75 on inquiry card.
BYTE August 1978 11
Technical
Fwum
A Letter Exchange: Extending S-100 Bus?
Olav Naess
Welhavensgt 65
Bergen NORWAY
When John McCallum in the March 1978
BYTE (page 148) discussed the possibilities
of getting a 16 bit data bus on the S-100,
there was one alternative he didn't mention:
why not use the input and output 8 bit
buses as a single 16 bit bidirectional bus? As
far as I can see, the problem will be cards
which enable their output buffers when the
processor does the same. Are there really
cards which do that? Do they talk when
they are told to listen?
That a 16 bit processor can only ex-
change a byte at a time with old IO cards
is less important. Old memory cards will be
more tricky to use, as they will require some
buffer rewiring. If the new 16 bit processors
get 16 bit wide memory cards, they should
thrive well on the S-100.
I suggest an improvement for the S-100:
one of its lines should be reserved for use as
a bidirectional bus for analog signals. When-
ever digital data is read through an input
port, an analog to digital converter samples
the analog bus, and when data is sent to an
output port, a D/A converter puts its output
voltage on the analog bus.
Finally, it is awkward to connect S-100
cards to the environment when they need
external connectors, switches, indicators,
potentiometers, etc. The cabinet cannot
easily have panels equipped with such
communication points which the particular
combination of cards inside needs. A solu-
tion to this problem is commonly used with
laboratory electronic systems: Each plug-in
card has a long, narrow plate mounted per-
pendicularly along the card edge that is
opposite to the edge connector. Together
these plates for the communication points
will constitute a relevantly composed front
panel; and the mess of costly connectors
and cables inside is replaced by short, fixed
wire connections. Old S-100 cards can be
used with such a system, even if the plates
cannot be mounted on these cards. (A still
better but more radical solution is the
hinged frame system I described in the
April 1977 Digital Design.)'
And Some Notes by John C McCallum
John C McCallum
Dept of Computer Science
York University
4700 Keale St
Downsview, Ontario
CANADA M3J 1P3
I was interested in Olav Naess' comments
about expanding the Altair (S-100) bus to
include a 16 bit data bus. Mr Naess' notes
brought to mind some of the discussions at
the S-100 bus forum at Atlantic City last
year.
The suggestion to use the input and
output 8 bit buses as a single 16 bit bi-
directional bus has three drawbacks:
(1) It assumes that proper data transfer
signals are used by all memory
boards. Unfortunately that's not so.
I don't have any of the bad boards
myself. But others at the forum
mentioned the problem.
(2) A big problem is Processor Tech-
nology's idea that one should wire
data in and data out lines as a bi-
directional bus. This simplifies board
design — but makes a 16 bit bidirec-
tional bus impossible when used with
most Processor Technology boards
or systems.
(3) Rewiring all the old memory boards
to accommodate 16 bit words is a
problem. I have enough difficulty
getting standard boards in the right
memory area!
About the comment on reserving one
S-100 bus line for an analog signal — it
sounds nice. But unfortunately there is so
much noise on the bus that it would be
useless. Most of the people at the forum did
not realize the extent of the noise on the
bus — so it is useful to point it out again.
On the topic of packaging of the S-100
system, I feel there is something needed.
Perhaps a device like a CAMAC frame
system would be good. This is similar to
what Mr Naess suggests. I think the hinged
frame might be tricky, and I can remember
100 white wires to connect up sections of a
mother board! I think the most important
S-100 bus consideration is getting common
acceptance of the extended addressing lines.
With 64 K memory boards coming down in
price, and the new Intel 8086 processor
addressing 1 M byte, the lines are needed.
TDL seemed to have the simplest structure,
so I vote for A1 6, 17, 18, 19 as the highest
priority.
Beyond the 1 M byte range, I think that
we most likely need a whole new bus to sup-
port future processor chips (multi-mega-
byte, 32 bit data bus). The S-100 bus will
probably be going strong for another 5 years
anyway."
12 August 1978 ©BYTE Publications Inc
Our goal was to produce 100%
reliable business programs/'
" g ^ e " e ^Cg MANUAL
e<»
<£>*
ffKCOUIITS RCCClVflBU
HfFtntNCB MANOAt
^
*£»*
■
"What do we mean by reliable programs? Three
things: good program design, documentation, and
full support.
DESIGN Good program design meets a wide
variety of customer needs without reprogramming.
<+?*
vJ
^^^^^^i
T-+ ~1
*?? **** ■■
k
UiA
«
W . •^^^^^
hnm rarscins. President
Alan Cooper. \'P. Systems Development
351 on irun>"\ ewd
Our programs are comprehensive yet retain their
flexibility. They allow convenient backup, are easy
to use and have been thoroughly tested and field
proven.
DOCUMENTATION We consider the quality of
the documentation to be as important as the
programs themselves. That's why our manuals
are clear, concise and complete.
SUPPORT And when it comes to support we're
second to none. We release periodic updates,
answer your questions and are available to provide
technical assistance. Now that's reliable."
Our qrowing Business Svstems series currently
includes: GENERAL LEDGER, ACCOUNTS
RECEIVABLE, NAD (Name and Address File
system) . QSORT (full disk sort merge) . and
CBASIC (a powerful business Basic) . For details,
contact our sales manager. Richard Ellman.
Structured I y/tems Group
5615 KALES AVE, DEPT. B6 OAKLAND, CA 94618 (415)547-1567
•v svstems are compatible with am .' 80 cm 8080 CP M system
Why Apple II is the world's
st selling personal computer.
'hich personal computer will be
most enjoyable and rewarding for you?
Since we delivered our first Apple* II
in April, 1977, more people have chosen
our computer than all other personal
computers combined. Here are the
reasons Apple has become such an
overwhelming favorite.
Apple is a fully tested and assembled
mainframe computer. You won't need
to spend weeks and months in assembly.
Just take an Apple home, plug it in,
hook up your color TV* and any cassette
tape deck — and the fun begins.
To ensure that the fun never stops,
and to keep Apple working hard, we've
spent the last year expanding the Apple
system. There are new peripherals,
new software, and the Apple II Basic
Programming Manual. And wait till
you see the Apple magazine to keep
14 BYTE August 1978
owners on top of what's new.
Apple is so powerful and easy to use
that you'll find dozens of applications.
There are Apples in major universities,
helping teach computer skills. There
are Apples in the office, where they're
being programmed to control inven-
tories, chart stocks and balance the
books. And there are Apples at home,
where they can help manage the family
budget, control your home's environ-
ment, teach arithmetic and foreign
languages and, of course, enable you
to create hundreds of sound and
action video games.
When you buy an Apple II you're
investing in the leading edge of tech-
nology. Apple was the first computer
to come with BASIC in ROM, for
example. And the first computer with
up to 48K bytes RAM on one board,
using advanced, high density 16K
devices. We're working to keep Apple
the most up-to-date personal computer
money can buy. Apple II delivers the
features you need to enjoy the real
satisfaction a personal computer can
bring, today and in the future.
15 colors & hi-resolution
graphics, too.
Don't settle for a black and
white display! Connect your
Apple to a color TV and
BASIC gives you instant
command of three display
modes: Text, 40h x 48v
Color-graphics in 15 colors,
a 280h x 192v High
Resolution
array that
lets you plot
graphs and
compose
3-D images.
Apple gives
you the added
capability of combining
text and graphics, too.
Back to basics, and
assembly language too.
Apple speaks three languages: fast
integer BASIC, floating point BASIC
for scientific and financial applications,
and 6502 assembly language. That's
maximum programming flexibility. And,
to preserve user's space, both integer
BASIC and monitor are permanently
stored in 8K bytes of ROM, so you
have an easy-to-use, universal language
instantly available. BASIC gives you
graphic commands: COLOR=, VLIN,
HLIN, PLOT and SCRN. And direct
memory access, with PEEK, POKE
and CALL commands.
Software: Ours and yours.
There's a growing selection of pre-
programmed software from the Apple
Software Bank — Basic
Finance, Checkbook, High
Resolution Graphics and
more. Now there's a User
Section in our bank, to make
it easy for you to obtain
programs developed
by other Apple owners. Our Software
Bank is your link to Apple owners all
over the world.
Alive with
the sound
of music.
Apple's ex-
clusive built-in
speaker delivers
the added dimension of sound to your
programs. Sound to compose electronic
music. Sound to liven up games and
educational programs. Sound, so that
any program can "talk" back to you.
That's an example of Apple's "people
compatible" design. Another is its light,
durable injection- molded case, so you
can take Apple with you. And the
professional quality, typewriter-style
keyboard has n-key rollover, for fast,
error-free operator interaction.
Apple is the
pf oven computer.
Apple is a state-of-the-art single
board computer, with advanced LSI
design to keep component count to a
minimum. That makes it more reliable.
If glitches do occur, the fully socketed
board and built-in diagnostics sim-
plify troubleshooting. In fact, on our
assembly line, we use Apples to
test new Apples.
* Apple II plugs into any standard TV using
an inexpensive modulator (not included).
*In California, call 408/996-1010.
Apple peripherals
are smart peripherals.
Watch the far right column of this ad
each month for the latest in our grow-
ing family of peripherals. We call them
"intelligent interfaces." They're smart
peripherals, so you can plug them in
and run them from BASIC without
having to develop custom software.
No other personal computer comes
close to Apple's expandability. In addi-
tion to the built-in video interface, cas-
sette I/O, and four A/D inputs with two
continuously variable game paddles,
Apple has eight peripheral slots, three
TTL inputs and fourTTL outputs. Plus
a powerful, state-of-the-art switching
power supply that can drive all your
Apple peripherals.
Available now
Apple is in stock and ready for
delivery at a store near you. Call us for
the dealer nearest you. Or, for more
details and a copy of our "Consumer's
Guide to Personal Computers," call
800/538-9696**
or write Apple
Computer, Inc.,
10260 Bandley
n^ Drive, Cuper-
\ > tino, CA
95014.
iry card.
■gcippkz computer
Programming is a snap!
I'm halfway through Apple's BASIC
manual and already I've programmed
my own space wars game.
Those math programs I wrote
last week- 1 just rewrote them using
Apple's mini-assembler and got them
to run a hundred times faster.
New from Apple.
Introducing Disk II :
instant access to your files.
Our newest peripheral is Disk II, a
high-density 514" floppy disk drive for
fast, lowcost data retrieval. It's perfect
for storing large bodies of data such as
household finances, address files and in-
ventories; you can find any record in just
half a second. No more searching through
stacks of cassettes; with
a few keystrokes, your
system will load, store
and run any file by
name.
Disk II consists of
interface cards and fourteen drives,
for control of nearly 1.6 megabytes of
data, with no expansion chassis. The com-
bination of ROM-based bootstrap loader
and an operating system in RAM provides
complete disk handling capability, includ-
ing these special features:
• Soft sectored • Random or sequential
file access • Program chaining capability
• Universal DOS command processor
works with existing languages and monitor
• Full disk capability in systems with as
little as 16K RAM • Storage capacity:
113 kilobytes/diskette.
See Disk II now at your Apple dealer.
Sold complete with controller and DOS at
$495.*
Peripherals in stock
Hobby Board (A2B0001X), Parallel Printer
Interface (A2B0002X), Communication In-
terface (A2B0003X), Disk II (A2M0004X).
Coming soon
High speed Serial Interface, Printer II,
Printer HA, Monitor II, Modem IIA.
1 Price subject to change without notice.
Circle 15 on inquiry card.
Apple's smart peripherals make
expansion easy. Just plug 'em in and
they're ready to run. I've already
added two disks, a printer and the
communications card.
About the Cover
by Carl Helmers It is rare when one can indulge in one's
prejudices with relative impunity, poking
a bit of good humored fun to make a point.
The design of the cover, entitled "Pascal's
Triangle" provided just such an opportunity.
The cover was executed by Robert Tinney,
but the prejudices are all mine and were
given to him as a fairly detailed script. The
point is that Pascal is here, it is consistent
with use by small computers, such as many
readers own, and it is available in the form
of the UCSD software system at quite a
nominal charge above the cost of the hard-
ware required. While today it requires a com-
puter at the high end of the personal com-
puter range of pricing, the utility of the
language and advances in both magnetic
media and read only memory technology
should lower the price of the minimum
hardware requirements considerably over
the course of the next year or two. With that
point, we present "Pascal's Triangle."
The primary allegory of the cover is of
course the inversion of the "Bermuda
Triangle" myth's theme to show smooth
waters. The triangle is an unbounded tri-
16 August 197SOBYTE Publications Inc
Now there are at least
102K more reasons to
buy the HeathkitHS
Personal Computer-
The WH17 Floppy!
1
•
Be sure to fill out
postcard to order
your FREE catalog.
If card is missing,
write Heath Company,
Dept. 334-440,
Benton Harbor,
Michigan 49022.
Heathkit
CP-152
Circle 160 on inquiry card.
ou read this magazine, you've
probably seen our ads on the H8. It's a
neat, well -designed machine with a
lot of fine features including an intelli-
gent front panel, octal keyboard entry
and display, plenty of room for memory
and I/O expansion, and lots of other
practical "goodies," including the
popular 8080A CPU. H8 owners have
praised it for its convenience, versatility,
ease of operating and general per-
formance characteristics. In fact, if the
H8 was "missing" anything, it was a
floppy disk storage system.
Well, not any more! The WH17 Floppy
is now a reality and it brings extraordi-
nary powe r andversatility to your H8
computer
system.
Programs
are loaded
in seconds
instead
of minutes
so you're
up and
running fast; you can store literally
hundreds of programs on a single disk
so you have lots of storage space and
immediate access to all your programs;
you can update files instantly and
efficiently to save time. The WH17is far
more versatile and reliable than
paper tape or cassette storage systems.
It truly makes the H8 a "total capability"
computer system!
WANGCO 82
Disk Drive Unit
Storage media for the WH17is the stan-
dard hard -sectored 40 -track diskette.
Measuring just 5.25" in diameter, each
disk offers access to better than 102K
bytes of available program and
data storage area. The drive system
used in the WH17 is the famous
WANGCO model 82, a performance-
proven drive providing accurate high-
speed data access. Specifications of
this drive include a conservative 30 mS
track-seek time and typical random
sector access times of less than 250
mS. Compare. These figures are con-
siderably better than you'll find for
most equivalent competitive drives.
A diskette containing all operating
systems software for the WH17 is sold
separately for $100. This software
includes the Heath Disk Operating
System (HDOS) with its unique diag-
nostic for floppy evaluation and
optimization; the BUG-8 console
debugger; TED-8 text editor; HASL-8
assembly language and extended
Benton Harbor BASIC with files. An
optional plug-in second drive is
also available for $295.
The WH17 Floppy Disk system is now
available fully assembled and tested.
With single drive and controller
for only $675. A kit version will be
available later. The H8 requires 16K
of RAM to use the WH17and its operat-
ing system to their fullest capabilities.
era mail-order net FOB, Benton Harbor. Michigan
Prices and specifications subject tochange without n
ERS
System Engineered
for Personal Computing
WH17
BYTE August 1978
angular array of buoys numbered with the
binomial expansion coefficients. These co-
efficients are "Pascal's Triangle" as any high
school algebra student will have learned.
Pascal's Triangle on the cover is of course
embedded in a matrix of the waters of the
FORTRAN Ocean of computer languages,
named after the pioneering widely used
high level language FORTRAN, and its
descendents FORTRAN II, FORTRAN IV,
WATFOR, WATFIV and even the mildly
reformed RATFOR.
A prominent island graces the bottom of
the picture, the Isle of BAL with its rocky
and desolate surface. Note the great JCL
barrier reef which surrounds the Isle of Bal
and borders the Straights of COBOL along
the bottom edge of the picture. These
dangerous and unstructured reefs have sunk
more than one ship on their treacherous
shoals, including the good ship SS OS of all
encompassing (360 degree) fame. (Much
commercial traffic is seen in the sea lanes of
the Straights of COBOL)
In the lower right part of the picture
where the Straights of COBOL meet the
main body of the FORTRAN Ocean, we see
a curious fog bank (imagining a view from
the deck of a ship in the waters). It is said
that this fog bank is always present, hiding
the exotic and mysterious jungles of LISP.
While unseen by normal mortals, our gods'
eye view of the picture shows the brilliant
tropical algorithms, the fabulous nodes
growing on trees like in some Eldorado
of programming. But who can see brilliance
through a fog bank?
Travelling upward (in the picture)
through heavy seas we come to the pinnacle,
a snow white island rising like an ivory tower
out of the surrounding shark infested waters.
Here we find the fantastic kingdom of small
talk, where great and magical things happen.
But alas, just as the impenetrable fog bank
around the jungles of LISP hide it from our
view, the craggy aloofness of the kingdom
of small talk keeps it out of the mainstream
of things.
Turning our attention to the lower left
part of the picture, we see the famous
Floating Point separating the FORTRAN
Ocean mainstream from the interactive
and weed filled Sea of BASIC.
To all the relative disorder and chaos of
the waters of the FORTRAN Ocean and
its adjacent coastal features, the smooth,
calm infinity of Pascal's Triangle provides a
brilliant contrast. We note vessels ranging
from the commercial freighters to pleasure
boats to the rafts of hobbyists to the
military fighting ships heading for the calm
waters of Pascal 's Triangle.
To complete the mythology, we find
within Pascal's Triangle numerous examples
of ships enjoying the smooth sailing and
untroubled waters.
Is this an adequate picture? Computer
languages are like philosophies in many re-
spects, which is to say that the reasons for
an enthusiasm are often hard to attribute to
anything other than aesthetic grounds.
But as in philosophies and religions, con-
versions do occur from time to time.
Very often in today's microcomputer world,
we find the case of the engineer or systems
programmer who has been using an as-
sembler (if anything at all) as the first and
only software development tool. Such a
person will often discover BASIC, FOR-
TRAN, APL, COBOL (yes, even people
with engineering backgrounds sometimes
see COBOL as a first high level language)
or language X. When language X is dis-
covered, the advantages of the high level
language technique often become confused
with the specific example— and the enthu-
siasm which comes with the powerful elixir
of automated programming aids turns that
person into an X language convert with an
almost religious fervor.
As the new convert proceeds to use the
language, he or she also discovers its in-
adequacies in detail errors. And the X lan-
guage devotee starts inventing this or that
perfect extension, a new superset of X,
which is endowed with even better pro-
perties. This particular inventiveness syn-
drome is most pronounced in compiler
implementors since they are in a position
to "do something about" the older language
by ad hoc implementing personally meaning-
ful extensions when putting a new compiler
up.
What has resulted, viewing from the big
picture, is a range of languages, each reflect-
ing the context of the group of imple-
mentors who are responsible for its creation.
Pascal in this global context must be viewed
as but another step in that natural sequence
of human events.
I personally like Pascal as a method of
expressing programs, because of a number
of arguments supported by my own prior
experience using languages including macro-
assemblers, BASIC, FORTRAN, PL/I,
HAL/S, JOVIAL, XPL and a bit of PL/M.
As a potential user, try a few programs,
see if you like the style of expression in-
volved, and if the price is right, that may be
the system for you. If you like the argu-
ments presented for Pascal in this issue and
by examples in issues to come, by all means
express your interest to manufacturers. This
issue is a conscious attempt to communicate
some of the flavor of Pascal with a spirit of
fun and an understanding that even Pascal
may not be the be all and end all of com-
puter languages."
18
August 1978 ©BYTE Publications Inc
Circle 7 on inquiry card.
ALTOS presents a new standard
in quality and reliability
■
dUfl ■
WE'RE ALTOS COMPUTER SYSTEMS. Our SUN-SERIES ACS8000 business/scientific
computer creates a new standard in quality and reliability in high technology computers.
HIGH TECHNOLOGY The ACS8000 is a single board,
Z80®* disk-based computer. It utilizes the ultra-reliable
Shugart family of 8 inch, IBM compatible, disk drives. A
choice of drives is available: single or double density, single or
double sided. Select the disk capacity you need, when you
need it: ISM, 1M, 2M, or 4M bytes. The ACS8000 features
the ultimate in high technology hardware: a fast 4 MHz Z80
CPU, 64 kilobytes of 16K dynamic RAM, 1 kilobyte of 2708
EPROM, an AMD 9511 floating point processor, a Western
Digital floppy disk controller, a Z80 direct memory access,
Z80 Parallel and Serial I/O (two serial RS232 ports, 1 parallel
port), and a Z80 CTC Programmable Counter/Timer (real time
clock). In essence, the best in integrated circuit technology.
COMPUTER SYSTEMS
BUILT-IN RELIABILITY The ACS8000 is a true single
board computer. This makes it inherently reliable and main-
tainable. The board and the two Shugart drives are easily ac-
cessible and can be removed in less than five minutes. All elec-
tronics are socketed for quick replacement. Altos provides
complete diagnostic utility software for drives and memory.
QUALITY SOFTWARE Unlimited versatility. The ACS
8000 supports the widely accepted CP/M®** disk operating
system and FOUR high level languages: BASIC, COBOL,
PASCAL and FORTRAN IV. All available NOW.
PRICE $3,840. Standard ACS8000 system with 32 Kb RAM
and Vi Mb disk. FPP, DMA and software optional. Dealer/OEM
discounts available. Delivery: 3 weeks ARO.
•280 is a trademark of Zilog. Inc.
**CP/M is a trademark of Digital Research, inc.
2378B WALSH AVENUE • SANTA CLARA • CA 95050 • (408) 244-5766
There's an Ohio Scientific
dealer near you.
ALABAMA
M.C.S. Corp.
Pelham Mall
Pelham, AL 35124
(205)663-1287
ALASKA
Scientific Business Instr's
500 W. 27th
Anchorage, AK 99503
(907) 277-2650
CALIFORNIA
Expansion Techniques
2534 Ganesha
Altadena, CA 91001
(213) 794-0476
Shuey Aircraft
1009 E. Vermont
Anaheim, CA 92805
(714) 991-3940
Olson Electronics
11332 East South
Cerritos, CA 90701
(213) 860-0060
Adventures in Computing
8756 Warner
Fountain Valley, CA 92706
(714) 848-8388
Olson Electronics
4642 West Century
Inglewood, CA 90304
(213) 674-5740
Olson Electronics
Kearny Mesa, 4840 Convoy
San Diego, CA 92111
(714)292-1100
Systems Engineering
900 3rd Street
San Francisco, CA 94107
(415)777-3150
Olson Electronics
2125 El Camino Real
Santa Clara, CA 95051
(408) 248-4886
COLORADO
Total Data Systems
125 Fairway Lane
Fort Collins, CO 80521
(303) 491-5692
Tricomp/Computer Country
7115 N. Federal
Westminster, CO 80030
(303) 426-7743
Delaware Microsystems
92 East Main »1
Newark, DE 19711
(302) 738-3700 (after 7 PM)
Olson Electronics
5833 Ponce de Leon
Coral Gables, FL 33146
(305) 666-3327
Olson Electronics
1644 N. E. Second
Miami, FL 33132
(305)374-4121
Calculator Place
12 South Orange
Sarasota, FL 33577
(813)366-7449
Olson Electronics
6901 22nd Avenue, N.
Tyrone Square Mall
St. Petersburg, FL 33710
(813)345-9119
Olson Electronics
1215 South Dale Mabry
Tampa, FL 33609
(813)253-3129
GEORGIA
Electronic Information
120 Heatherwood
Athens, GA 30601
(404) 353-2858
Secom Systems
5241-F New Peach Tree
Chamblee, GA 30341
(404) 455-0672
Olson Electronics
2571 N. Decatur
Decatur, GA 30033
(404) 378-4201
HAWAII
Small Computer Systems
3140 Wailalae
Honolulu, HI 96816
(808) 732-5246
ILLINOIS
American Microprocessors
1100 E. Broadway
Alton, IL 62002
(618)465-4489
Tech-Tronics
714 S. University
Carbondale, IL 62901
(618)549-8495
Adonis Computing
2855 W.Nelson
Chicago, IL 60618
(312)463-0847
Electronic Systems
611 N.Wells
Chicago, IL 60610
(312)944-6565
Olson Electronics
4101 N. Milwaukee
Chicago, IL 60641
(312)545-7336
Olson Electronics
1734 0gden
Downers Grove, IL 60515
(312)852-9650
A & H Associates, Ltd.
2530 Crawford
Evanston, IL 60602
(312) 328-2800
No-Name
2701 Grand
Galesburg, IL 61401
(309)343-6135
CompuTerminal Systems, Inc.
1132 Waukegan
Glenview, IL 60025
(312) 724-3690
Tek-Aids Industries
1711 Chestnut
Glenview, IL 60025
(312) 724-2620
American Microprocessors
6934 N. University
Peoria, IL 61614
(309) 692-5852
American Microprocessors
20 N. Milwaukee
Prairieview, IL 60069
(312)634-0076
Wysocki Electric
3080 South Blvd.
Rockford, IL 61109
(815)874-4846
Data Domain
1612 E. Algonquin
Schaumburg, IL 60195
(312)397-8700
Data Domain
406 S. College
Bloomington, IN 46401
(812) 334-3607
American Microprocessors
146 N. Broad
Griffith, IN 46319
(219) 924-7901
American Microprocessors
3602 East Washington
Indianapolis, IN 46201
(317)359-7445
Data Domain
7027 N. Michigan
Indianapolis, IN 46266
(317)251-3139
Olson Electronics
5353 N. Keystone
Indianapolis, IN 46220
(317)253-1584
Data Domain
10 N. Third
LaFayette, IN 47902
(317)423-254B
Computer Management
610 Monroe
LaPorte, IN 46350
(219) 362-5812
American Microprocessors
2655 Irving
Portage, IN 46368
(219) 760-2278
Microbus
1910 Mt. Vernon, S. E.
Cedar Rapids, IA 52403
(319)364-5075
American Microprocessors
102 E. 4th
Waterloo, IA 50703
(319)296-2255
Barney & Associates
425 N. Broadway
Pittsburg, KS 66762
(316)231-1970
Technigraphics
5911 Claredon
Wichita, KS 67220
(316) 744-2443
KENTUCKY
Olson Electronics
117 Southland
Lexington, KY 40503
(606)278-9413
Data Domain
3028 Hunsinger
Louisville, KY 40220
(502) 456-5242
Olson Electronics
4137Shelbyville
Louisville, KY 40207
(502) 893-2562
The Mathbox
4431 Lehigh
College Park, MD 20740
(301)277-6828
Systems Engineering
1749 Rockville Pike #307
Rockville. MD 20842
(301)468-1822
MASSACHUSETTS
Computer Shop-Aircom
288 Norfolk
Cambridge, MA 02139
(617)661-2670
Bradshaw Enterprises
18 Harborview
Hingham, MA 02043
(617)749-6844
MICHIGAN
The Abacus
Route 1, Box 193
Niles Road
Berrien Springs, Ml 49103
(616) 429-3034
Microcomputer World
313 Michigan N. E.
Grand Rapids, Ml 49503
(616)451-8972
Concept Engineering
3706 Malibu
Lansing, Ml 48910
(517)394-0585
Olson Electronics
29121 DeQuindre
Madison Heights. Ml 48071
(313)546-0190
Great Lakes Photo
5001 Eastman
Midland, Ml 48640
(517)631-5461
MINNESOTA
Custom Computer Systems
1823 Lowry
Minneapolis, MN 55411
(612)588-3944
Micro Business Sales
4345 Lyndale N.
Minneapolis, MN 55412
(612)871-9230
Ronald D. Frisch
3034 Marine Circle
Stillwater, MN 55082
(612)439-8212
MISSISSIPPI
Jack Fisher Sales
100 Main
Michigan City, MS 38647
(601)224-6470
MISSOURI
Four State Microcomputer
402 Wall
Joplin, MO 64801
(417) 782-1285
Norman Electronics
402 Wall
Joplin, MO 64801
(417)724-0368
Impact Systems
Decker Building
613 W. 3rd
P.O. Box 478
Lee's Summit, MO 66463
(816) 524-5919
The Computer Bit
1320 S. Glenstone
Springfield, MO 65804
(417)883-2709
Futureworld
1909 Seven Pines
St. Louis, MO 63141
(314)434-1121
Sauer Computer Systems
1750 South Brentwood
Suite 601
St. Louis, MO 63144
(314)962-0382
MONTANA
Linco
P.O. Box 2418
Cut Bank, MT 59427
(406)336-3117
NEBRASKA
Omaha Computer Store
4540 South 84th
Omaha, NB 68127
(402) 592-3590
NEW JERSEY
Computer Power
235 Nutley
Nutley, NJ 07110
(201)667-5502
Computer Corner
240 Wanaque
Pompton, NJ 07442
(201)835-7080
NEW YORK
Associated Consultants
33 Ogden
East Williston, NY 11596
(516) 746-1079
Computer Mart of N. Y.
118 Madison
New York, NY 10016
(212)686-7923
Yingco
Two World Trade Center
Penthouse 107th Floor
New York, NY 10048
(212) 775-9000
Brag Microcomputers
19 Cambridge
Rochester, NY 14607
(716)442-5861
Microcomputer Workshop
234 Tennyson Terrace
Williamsville, NY 14221
(716) 632-8270
OHIO
Olson Electronics
69 West State
Akron, OH 44308
(216) 762-0301
Olson Electronics
1994 Brittain
Akron. OH 44310
(216)633-4338
Olson Electronics
3265 W. Market
Akron. OH 44313
(216)864-3407
Lucas Office Equipment
& Service
869 E. Franklin
Centerville, OH 45459
(513) 433-8484
Olson Electronics
2020 Euclid
Cleveland, OH 44115
(216)621-6387
Olson Electronics
6813 Pearl
Cleveland, OH 44130
(216)845-2424
Olson Electronics
6153Mayfield
Cleveland, OH 44124
(216)449-2690
Olson Electronics
21850 Center Ridge
Cleveland, OH 44116
(216) 331-4600
Byte Shop
2432 Chester
Columbus, OH 43221
(614)486-7761
Olson Electronics
1975 Henderson
Columbus. OH 43220
(614)451-3245
Johnson Computer
123 W.Washington
Medina, OH 44256
(216) 725-4560
Olson Electronics
7401 Market
Southern Park Mall
Youngslown, OH 44512
(216)758-3828
OKLAHOMA
Gauger Engineering
910 Orient
Clinton, OK 73601
Accounting Systems
2709 Orlando
Oklahoma City, OK 73120
(405) 751-1537
Gauger Engineering
3824 S. 79th East
Tulsa, OK 74145
(918)627-1064
OREGON
Fial Computer
11013 S. E. 52nd
Milwaukie. OR 97222
(503) 654-9574
PENNSYLVANIA
Olson Electronics
5918 Penn
Pittsburgh, PA 15206
(412)362-1333
Olson Electronics
3405 Saw Mill Run
Pittsburgh, PA 15227
(412) 881 0702
Olson Electronics
4778 McKnight
Pittsburgh, PA 15237
(412)366-7298
Abacus Data Systems
Route 8
Reno, PA 16343
(814)677-6502
TENNESSEE
Computer Powerof Memphis
3065 James
Memphis, TN 38128
(901)386-9905
Smart Machine Mart
5151 Hillson
Nashville, TN 37211
(615)833-9773
Computer Powerof Oak Ridge
800 Oak Ridge Turnpike
Oak Ridge, TN 38730
(615)482-9031
SOUTH DAKOTA
Exe Engineering
804 E. Lewis
Vermillion, SD 57069
(605)624-6411
TEXAS
Mr. Computer
744 FM 1960 W. Suite E
Houston, TX 77090
(713)444-7419
UTAH
Home Computer Store
2343 East 3300 South
Salt Lake City. UT 84109
(801) 484-6502
VIRGINIA
H/B Computers
217 E. Main
Charlottesville. VA 22101
(804)295-1975
Microsystems, Inc.
5320 Williamson
Roanoke. VA 24012
(703) 563-0693
WASHINGTON
Ye Olde Computer Shoppe
1301 George Washington
Richland, WA 99352
(509) 946-3330
WISCONSIN
MicroComp
785 S. Main
Fond du Lac, Wl 54935
(414)922-2515
Madison Computer Store
1863 Monroe
Madison, Wl 53711
(608) 255-5552
Milwaukee Magnetic Media
1750 West Silver Spring
Milwaukee, Wl 53209
(414)228-8930
Indianhead Computer
Box 178 Route 4
Rice Lake, Wl 54868
(715)234-4323
Olson Electronics
3125 South 108th
West Allis. Wl 53227
(414)541-1406
WYOMING
Control Technology
204 Crazy Horse Lane
Gillette, WY 82716
(307) 682-0300
CANADA
Omega Computing Ltd.
Box 220
Station P
Toronto. Ontario
Canada M5S2F7
(416) 425-9200
Robo-Tronics
509 16th N. W.
Calgary, Alberta
Canada T2M 0J6
(403) 282-9468
EUROPE
Pan Atlantic Computer
System GmbH
61 Armstadt
Frankfurterstrasse 78
West Germany
PUERTO RICO
Puerto Rico Key Punch
P.O. Box 2036
HatoRey, Puerto Rico 00919
(809) 751-4042
SOUTH AMERICA
SAVE
P.O. Box 701
Cuenca, Ecuador
830-770
20
BYTE August 1978
Circle 290 on inquiry card.
An exceptional value
in personal computing
Sh.
i mmiiiM. , iib J
CHALLENGER ■■
If you are interested in an ultra high per-
formance personal computer which can be
fully expanded to a mainframe class micro-
computer system, consider the C2-8P.
Features:
I Minimally equipped with 8K BASIC-in-ROM, 4K RAM,
machine code monitor, video display interface, cassette
interface and keyboard with upper and lower case
characters. (Video monitor and cassette recorder optional
extras.)
a The fastest full feature BASIC in the microcomputer
industry.
■ Boasts the most sophisticated video display in per-
sonal computing with 32 rows by 64 columns of upper
case, lower case, graphics and gaming elements for an ef-
fective screen resolution of 256 by 512 elements.
a The CPU's direct screen access, coupled with its ultra
fast BASIC and high resolution, makes the C2-8P capable
of spectacular video animation directly in BASIC.
■ Fully assembled and tested: 8 slot mainframe class
microcomputer, six open slots for expansion. Supports
Ohio Scientific's ultra low cost dynamic RAM boards or
ultra high reliability static RAMs.
ILLiUUL]
j The C2-8P can support more in-case expansion than its
four nearest competitors combined.
m The C2-8P is the only BASIC-in-ROM computer that can
be directly expanded today to a complete business
system with line printer and 8" floppy disk drives.
■ It is the only personal class computer that can be
expanded to support a Hard Disk! (CD-74)
The C2-8P is the fastest in BASIC, has the most sophisti-
cated video display and is the most internally expandable
personal computer. Therefore, it should be the highest
priced?
Wrong: The C2-8P is priced considerably below several
models advertised in this magazine. The C2-8P is just one
of several models of personal computers by Ohio
Scientific, the company that first offered full feature
BASIC-in-ROM personal computers.
For more information, contact your local Ohio Scientific
dealer or the factory at (216) 562-3101.
1333 S. Chillicothe Road • Aurora, Ohio 44202
BYTE August 1978 21
The C3-B
by Ohio Scientific
The world's most powerful
microcomputer system
is far more affordable
than you may think:
STANDARD FEATURES:
74 million byte Winchester tech-
nology disk drive yields mainframe
class file access speeds and
capacity.
High level data file software
makes high performance file struc-
tures like multikey ISAM easy to
use.
Triple processor CPU with
6502A, 6800 and Z-80 gives the pro-
grammer the best of all worlds in
performance and versatility.
Switchable and programmable
CPU clocks at 1, 2 and 4 MHz yield
maximum performance from each
microprocessor.
■ The included 6502A based ex-
tended disk BASIC by Microsoft
out-benchmarks every micro
available, including 4 MHzZ-80 and
LSI-11 with extended arithmetic.
■ 48Kof high reliability static RAM
is standard.
■ High density 8" floppys provide
program and data mobility from
machine to machine.
■ Completely integrated mechani-
cal system with UL-recognized
power supplies; continuous duty
cycle cooling; modular construc-
tion and rack slide mounted
subassemblies.
Based on a 16 slot Bus-oriented
architecture with only 7 slots used
in the base machine.
Directly expandable to 300
megabytes of disk, 768K of RAM in
16 partitions, 16 communication
ports, plus console and three
printers.
C3-B's have been in production
since February, 1978, and are
available now on very reasonable
delivery schedules.
The C3-B was designed by Ohio
Scientific as the state of art in
small business computing. The
system places its power where it's
needed in the small business
environment; in the data files. The
C3-B's advanced Winchester tech-
nology disk, coupled with its smart
controller and dedicated high
speed memory channel, gives the
C3-B data file performance com-
parable with today's most powerful
maxi-computers.
The system can easily expand
upward from single user to multi-
user operation. Optional hardware
and software include a real time
clock and a 16 terminal (plus con-
sole) real time operating system.
Multipleterminal programs such as
multi-station order entry can be
programmed directly in BASIC. The
system is super fast because multi-
terminal I/O can be handled
simultaneously with disk I/O due to
the smart disk controller!
By simply adding memory in the
alternate partitions, the system can
be expanded to full multi-tasking,
multi-programming operation. The
multi-terminal hardware supports
both asynchronous and synchron-
ous protocols in conjunction with
terminals and smaller computers
such as Ohio Scientific's BASIC-
in — ROM and floppy disk based
systems at transfer rates up to
500K bits per second.
■ The C3-B costs only slightly
more than many floppy only com-
puters but offers at least a thou-
sand times performance improve-
ment over such machines (50 times
storage capacity multiplied by 20
times access speed improvement).
But what if your business client
cannot justify starting with a C3-B?
Then start with Ohio Scientific's in-
expensive C3-S1 floppy disk based
system running OS-65U. When he is
ready, add the CD-74 big disk and
directly transfer programs and files
from floppy to big disk with NO
modifications.
That's upward expandability!
*Rack as shown on right com-
plete with 74 megabyte disk, dual
floppys, 48K of static RAM, OS-65U
operating system and one CRT ter-
minal under $13,000.
Multiple terminal systems with
printers and applications software
are priced in the mid-20's.
1333 S. Chillicothe Road • Aurora, Ohio 44202
BYTE August 1978 23
On Building a Light-Seeking
Robot Mechanism
Stephen A Allen
POB 2281
Leucadia CA 92024
Tony Rossetti
1455 Arbor Av
Los Altos CA 94022
The idea of the Tee Toddler was born
during the summer of 1976. We, as two
undergraduate engineering students at Rice
University in Houston, wanted to design a
system using as much applicable electrical
engineering as possible which could act on
its own intelligence and which could also
learn from its mistakes. We wanted to incor-
porate state of the art electronics and
actually develop a piece of working hard-
ware. As a three credit hour course for two
semesters we designed and built a small
"robot" car, the Tee Toddler.
The car is designed to track toward a
shining light. It accomplishes this with the
help of two processors: an on board Z-80
microprocessor which communicates with a
PDP-1 1 minicomputer over a two way digital
radio link. The source light the Tee Toddler
searches for can be anywhere on the horizon.
This light is detected by a rotating eye which
scans a 360 degree view five times per
second (see photo 1). There is also an ultra-
sonic sonar system capable of scanning
simultaneously to the left and right of
center to detect objects in the car's forward
path (see photo 2). It can give ranges of up
to five feet with 9 inch accuracy. The car
has three forward and reverse speeds, five
steering positions and a turning radius of five
feel. Other standard equipment includes a
front contact sensing bumper to detect ob-
jects which the sonar missed; a source light
monitor to determine if the car is at its
destination; a source light verifier to indicate
whether the car has gone behind something
which blocks the source light; whitewall
tires and positive traction rear end. Most
power requirements were met by regulating
a 12 V rechargeable battery. The Tee
Toddler is a closed loop system. It con-
stantly updates its knowledge of where
the light is and what obstacles are in the
way; thus operating as a self-sufficient real
time system. Great flexibility inherent in the
two processor system allows for develop-
ment of the car's intelligence. The program-
mer has lots of freedom in deciding how the
car should deal with differing situations.
This freedom in configuring the system be-
tween the computers and a moving object
is the true beauty of the Tee Toddler. The
duties of each processor are different. The
on board Z-80 handles the car's reflex
maneuvers; the PDP-11 makes both real time
navigational decisions and can also generate
a better path for the car to take on a second
trip over the same obstacle course toward
the light. The normal mode of operation is
set up with the PDP-11 in control of the car
via the radio. The Z-80 is operated in an
Photo 1 : The primary sensor of Tee Toddler
is this photoelectric horizon scanner. The
"eye" mounted on a Plexiglas standard and
metal bracket scans a 360° field. The flat
mirror rotates at five revolutions per second
deflecting light into the phototransistor eye
through a 45° angle. The position of the
minoi is resolved imo one of 16 angular
states by a slotted disk which passes through
an optocoup/er.
24 August 1978 © BYTE Publications Inc
Figure I : The source light intensity monitor circuit is used to test proximity of
the car to the goal of a shining light. The end of the car 's mission is indicated
when the light intensity in a 1 20° forward viewing range exceeds a threshold set
by the resistor RJ.
interrupt mode. It stands by and records
all course changes the car makes each time
an obstacle is detected by sonar and also
records each navigational correction made
enroute to the light. In the case of collision
or loss of the light, the Z-80 takes over
control and remedies the situation before it
returns control of the car to the PDP-11. At
the end of the trip to the light the Z-80
dumps all the course change vectors it has
recorded (steering setting and distance
traveled) to the PDP-11 over the radio
channel. The PDP-11 then determines a
better path for the car to take over the same
course on a second run.
center so that a contact on only one side
will depress only one switch; however if the
collision is head-on, both switches will be
depressed. Two bits, one for each switch, are
sent to the Z-80 computer.
Sensors: Source Light Intensity Monitor
The source light is the car's destination.
The intensity monitor consists of three
phototransistors which sense the intensity
of light until the car is close enough to the
source light (a foot) to stop; mission accom-
plished (see figure 1). An angle of 120 de-
grees is monitored, so the car must make
Sensors: the Bumpers
The bumper is needed only in case an
object is encountered in front of the car
which is too narrow to be seen by the
sonar. The bumper has two microswitches
behind it, one on each side. It pivots in the
Photo 2: Tee Toddler's sonar system trans-
ducers are illustrated in this front view. The
black object in the center of the picture is
the sonar transmitter which emits periodic
pulses of sound at 40 kHz. The two cup-like
objects with red interiors (equally spaced to
the left and right of the center of the picture
toward the top) are the receiving micro-
phones. The sonar drive electronics of this
system resolves four distance states on each
receiving microphone with a maximum range
of about five feet and an accuracy of about
nine inches.
Augusl 1978 © BYTE Publication! Inc 25
Photo 3: A view of the Tee Toddler car from the rear with the differential
and drive motor visible. (The battery and rear deck have been removed for
purposes of this photograph.)
ENCODING
VALUES
Figure 2: The direction of the light source relative to the forward direction of
travel is measured by one of 16 angular states. The disk on which the main
horizon scanning sensor's mirror is mounted has 16 slots which are sensed
by an optocoupler which drives a counter. The counter is reset once per
revolution of the disk by a separate sensor, so the angular states numbered
through 15 are sensed. When the photosensor detects the target light, the
current state of the scanning angle is latched and can be read by the Z-80
mobile computer for transmission to the PDP-1 1 base computer.
its final approach moving in a forward
direction.
Sensors:
Rotating Eye and
Source Light Verifier
The rotating eye scans a plane about 18
inches above the ground looking for a light
source. Photo 1 shows the physical arrange-
ment. It automatically adjusts its sensitivity
for ambient light, much like the human eye.
The response of its electronics is such that
it can detect a penlight at 30 feet in a dark
room. In a normally lighted room it is self-
adjusting and can discriminate between two
lights if one is about three times as bright as
the other.
As the disk rotates clockwise, the 16 slots
in its edge pass through an optical switch
and are counted by a 4 bit counter on the
main deck. At the instant the light is spotted
during the disk's rotation, the count is
loaded into a 4 bit latch to be read by the
computer. For example, if the light is
spotted straight ahead, the count is eight.
Figure 2 shows the logical definitions of
the 16 possible directions (a missing slot
corresponds to the state when the mirror is
aimed to the rear; the counter is reset to
zero in this condition). Thus any erroneous
counts caused by ambiguous light sources
or reflections are wiped out each time the
disk begins a 360 degree scan. Once a num-
ber is loaded into the latch it stays there
until the light is spotted again and a new
number is loaded. This reloading usually
occurs once for each time the disk goes
around. But if the light source suddenly
becomes blocked by some object, the latch
continues to hold the last number loaded
even though there is no light being seen. To
remedy this problem, a source light verifica-
tion circuit is part of the electronics. This
circuit sends a logical to the Z-80 as long
as the light is actually still being spotted and
a logical 1 when it is not.
Steering Control
The steering system has five possible posi-
tions numbered arbitrarily 2, 3, 4, 5 and 6.
2 is far left and 6 is far right. The command
from the computer (PDP-11 or Z-80) has
3 bits to specify these states. The number is
converted to an analog voltage using a cur-
rent sourced resistor ladder. The DC voltage
enables a pulse width modulator which con-
trols the two steering servos. The servos act
in opposite directions on opposite ends of
the front axle to turn the wheels. The pulse
is sent at 67 Hz. See figure 3 for a block
diagram of the steering control section. If
the pulse is 1 ms long, the servos stay where
26 August 1 978 © BYTE Publications Inc
NORTH STAR 16K RAM
A star from our Horizon
m'W'
ii 1 1 1 1 1 i 1 1 1 1 1 1 1 1 1 ■ 1 1 1 1 1 1 1 i 1 1 1 1 1 it • i r
i.t»»mnii'IHMIIIfflHHHIIHHflHHHItM
The North Star 1 6K RAM board is a star performer
in our HORIZON computer. Just as important, it is the
ideal memory for most other S-100 bus systems. No other
RAM board can surpass the speed, reliability, and quality
features of the North Star 16K RAM at any price.
SPEED— The North Star 16K RAM is the fastest S-100
bus memory board available. No wait states are required,
even with a Z80 at 4MHz. And, of course, this outstand-
ing 16K RAM will operate with both 8080 and Z80 proc-
essors at 2MHz. Industry standard 200ns dynamic RAM
chips are used. Invisible on-board refresh circuitry allows
the processor to run at full speed.
RELIABILITY — The North Star 16K RAM is designed to
match the same high standards as our MICRO DISK
SYSTEM and HORIZON computer. For example, all ad-
dress and data signals are fully buffered. A parity check
option is available with the 16K RAM for applications re-
quiring immediate hardware error detection. If a memory
error occurs, a status flip/flop is set and an interrupt can
inform the processor. Or, if preferred, an error status
light will go on.
FEATURES —The North Star 16K RAM offers many de-
sirable features. Addressability is switch-selectable to
start at any 8K boundary. The board can perform bank
switching for special software applications, such as time-
sharing. Also, bank switching can be used to expand the
amount of RAM beyond 64K bytes. Power consumption
is minimal — the maximum power requirements are:
.6A @ 8V; .4A @ + 16V, and .1A @ -16V.
PRICES — $399 kit. $459 assembled, tested and burned-
in. Parity option: $39 Kit. $59 assembled, tested and
burned-in.
Write for free color catalog or visit your local computer
store.
North Star ^k Computers
2547 Ninth Street • Berkeley, California 94710 • (415) 549-0858
Circle 285 on inquiry card.
BYTE August 1978 27
Photo 4: An overall view of the Tee Toddler taken from the side. Radio
antennas and three levels of electronics on board are visible. The drive power
source, a GeLi rechargeable battery, is at the right, with the front of the
vehicle towards the left in this photograph.
STEERING
CENTERING
ADJUSTMENT
STEERING
CONTROL BITS
FROM
PROCESSORS
67Hz
CLOCK
VOLTAGE
CONTROLLED
PULSE
WIDTH
MODULATOR
r\
L
1
STEERING
SERVO
r~\
w
Figure 3: Steering system block diagram. Three bits from the Z-80 are de-
coded by a TTL decoder which implements a simple weighted resistor digital
to analog converter. The output of the converter is filtered to prevent sudden
changes and, in turn, sets the pulse width seen by the two servos. The servos
are Heathkit radio control devices which have a 5 pound thrust and a 1.5
second full range response time.
they are; if it is longer or shorter, they move
the wheels left or right. The servos are
Heathkit radio control modules with five
pounds of thrust. The change in pulse width
seen by the servos is electronically filtered
since the command from the computers can
change from far left to far right instan-
taneously while the servos take about
1.5 seconds to pull the wheels from full
left to full right.
Motor Control
The motor speeds are given by the num-
bers 0, 1 , 2 and 3 which are decoded to stop,
slow, medium and fast. There is also a for-
ward and reverse bit, thus making a total of
7 motor states controlled by three binary
digits. The motor control pulse width cir-
cuit works the same as the steering control
circuit, except that the pulse change is not
filtered. The motor is a to 13 VDC "pan-
cake" motor with a built-in 25:1 gear re-
duction. The rear axle differential gear
ratio is 1:1. The motor's speed is controlled
by the pulse width of the 12 V 700 Hz
pulses being sent to it by the control circuit.
Forward and reverse directions are con-
trolled by a relay. The motor draws a
current of about 1/2 A when the car is
cruising at 1 mph (1.6 kmph). Since the
motor is a highly reactive load to the sharp
edges of the control pulses, the motor is
optically isolated to eliminate interference
with the logic circuits of the on board Z-80
system. Power amplification to drive the
motor is accomplished after the isolator.
Sonar System
The sensing of objects in the car's path
was originally intended to be done with light.
This is difficult since objects with different
textures at the same distance from the car
would reflect different amounts of light.
Pulsed infrared did not have the necessary
intensity, and radar was ruled out because
it would detect only metal objects. The
existence of the National LM1812 sonar
integrated circuit was probably the major
factor enabling use of this sensor system.
With this system the car is able to distinguish
between obstacles to its left or right and can
navigate between obstacles spaced only
slightly farther apart than the car's width.
The sonar unit on the car transmits a
1 ins pulse at 40 kHz every 10 ms from a
transducer mounted in the center of the
car's front end (see photo 2). The echo is
received separately on the right and left by
two receiving transducers. Since there is
28 August 1978 IB BYTE Publications Inc
Collector's
item
The first 16 issues of BYTE —
September, 1975 through December, 1976 —
in two gold embossed hard cover volumes.
$100
complete set —
two volumes
00
These individually numbered sets are person-
ally signed by Carl T. Helmers, Jr., Editor-in-
Chief of BYTE.
As only 100 sets will be offered for sale, orders will be han-
dled strictly on a first-come first-served basis. Send in the
coupon today! These early issues of BYTE are packed with
articles by your favorite writers:
Helmers, Fylstra, Ryland, Dittrich, Chamberlin, Lancaster,
Maurer, and many more.
For your personalized set of BYTE's first 16 issues mail this
coupon today!
Carl T. Helmers, Jr.,
Editor-in-Chief, BYTE Magazine
4/ejLuu.
Yes, rush me my numbered and personalized 2-volume set of the first 16 issues of BYTE.
Card Number
Signature
Address
City
□ Check enclosed for $100.00
□ Bill BankAmericard/Visa □ Bill Master Charge
Expiration Date
Name (please print)
State
Zip
Mail to: BYTE Publications, Inc.
70 Main Street * Peterborough
N.H. 03458
August 1978© BYTE Publication! Inc 29
really only one sonar transceiver, the receiv-
ing transducers are multiplexed with field
effect transistors to the receiver for three
cycles of transmit and receive each. The
count of the elapsed time between transmit
and receive for each cycle is also multi-
plexed into the left or right output latch
to be ready by one of the computers. A
block diagram of the sonar system is shown
in figure 4.
Since sound in air travels at about one
foot per ms and a pulse is transmitted each
ten ms, the maximum range is about five
feet, which proves quite adequate. If no sonar
echo is received, then the output latches are
automatically loaded with the count 7, the
maximum range possible. This is decoded by
the computers as no object and thus no path
correction is made. The sensitivity of the
receiver is adjustable with a trimpot on the
main deck, thus allowing different distance
resolutions.
Sonar Ranging Terms: Derived Quantities to Be
Found
■ Angle of object relative to forward direc-
tion.
T = Time of transit out to object (equivalent
to a distance). T Q is one side of both left
and right path triangles.
Note: Using the law of cosines, and the two mea-
surements, the algebra gives two equations (left
and right signal path triangles) which can be
solved exactly for two unknowns (T Q and angle 6).
Sonar Ranging Terms: Measured Quantities
B = Half the total distance between the two
receivers. This forms one side of the
triangles used with the law of cosines.
R = Measured transit time, transmitter to
object to right receiver. R = T Q + Tp
L = Measured transit time, transmitter to
object to left receiver. L = T + T.
Sonar Ranging Terms: Miscellaneous
Included angle used in law of cosines
applied to left triangle.
Included angle used in law of cosines
applied to right triangle.
Time of transit back from object to left
receiver (equivalent to a distance). T^_ is
one side of left signal path triangle.
Time of transit back from object to right
receiver (equivalent to a distance). Tp is
one side of right signal path triangle.
90-6
90+fl
T R
MOD 24
COUNTER
3 KHz
CLOCK
FORWARD
DIRECTION
90° + fi
TRANSMITTER
ImS
J~L
RIGHT
RECEIVER
1_C
FET
MUX
~N MUX
SELECT
TRANSCEIVER CIRCUIT
(NATIONAL SEMICONDUCTOR)
ECHO
RECEIVED
Figure 4: Block diagram of the Tee Toddler's sonar
system. The heart of the sonar system is the National
Semiconductor LM1812 Sonar Transceiver Circuit,
which generates the sound pulse, detects a returning
sound pulse and thus controls a count measured in a 4
bit range counter. Given the two measurements of
distance R and L, the known base line B, the relation-
ships R = T + 7/? and L = T + T[_ it is possible to
apply the plane trigonometry law of cosines (a? = b?
+ c2 - 2bc COS (A)) to calculate the distance to the
object T and the angle 0.
ELAPSED TIME
CLR COUNTER
RANGE
LEFT
RANGE
RIGHT
DE-MUX
CTRL
OUTPUT
TO PROCESSORS
30
August 1978 ©BYTE Publications Inc
INTRODUCING
THE G/2 PROGRAM
LIBRARY.
Now you don't have to be a programmer to use
■|A||M #*#%■#§ MIltA^ I ^' ' ast here's a reliable, professional source of useful and entertaining programs for
yUUI Wll IIJUIwl • your personal computer. The G/2 Program Library from GRT unlocks the full power
of your personal computer. Without any programming knowledge on your part.
The G/2 Program Library consists of applications programs pre-recorded on cassette tapes. A detailed manual with each
cassette provides complete instructions. And G/2 programs contain prompting instructions. So they're easy to use every step of the
way. Just load the tape and G/2 puts your computer to work.
The first three G/2 program tapes are available now: For exciting family games, get Beat the House. You'll find Blackjack,
Craps, Roulette and Slot Machine programs, with truly random chances and realistic, casino-like payoffs.
Interested in your health? You'll want Clinic. Biorhythms, Dieting and Longevity programs give you new perspectives in health
and happiness, along with some pleasant guidelines to follow.
Need a better handle on your money? Buy Dollars & Sense.
Checkbook is a comprehensive program to balance your account and
keep within your budget, while Best Choice is a novel way to make
decisions based on the facts you know and the relative importance of
each. Use it for everything from choosing a new car to selecting
your next stereo.
Soon, every dealer that handles personal computers will stock the
G/2 Program Library. For the G/2 dealer nearest you, call us toll-free at
800/538-1770. (In California, 800/662-9810.) And if your favorite
computer dealer doesn't yet offer G/2, have him call the same number.
Soon you'll see G/2 program tapes in many other fields of interest.
The G/2 Program Library is now available for use with SOL, SWTPC,
Exidy, TRS-80 and Apple personal computers. Just select the package
marked for the computer you own.
Start building your G/2 Program Library now. And put the full
power of your computer yur nr A^QN
to work for you YOU BOUGHT
YOUR COMPUTER.
NT
A product of GRT Corporation
Consumer Computer Group
1286 North Lawrence Station Road
Sunnyvale, California 94086
(408)734-2910
Circle 148 on inquiry card.
Figure 5: Block diagram of the Tee Toddler
computer systems. The PDP-11 is a large
system which is immobile; it communicates
with the mobile Z-80 in the Tee Toddler car
using FM data links at separate frequencies.
The FM transmitters and receivers convert
binary data into a series of transmitted
frequency encoded modulations and vice
versa.
This type of sonar system is really a
minimal one. Doppler shift detection could
also be accomplished fairly easily to allow
determination of speed of a moving obstacle.
Echo amplitude analysis would also be worth
investigating since it would help solve the
problem of echo frame overlap; such overlap
exists when an echo from the previous
sounding returns late, after bouncing off a
far away object, resulting in two echos for
the current frame. The strongest of the two
(or more) echos should be taken as the true
one. The Tee Toddler's system triggers a
9 ms oneshot on the first echo thereby
ignoring all secondary echos.
Radio Data Links
An encoder transforms parallel bits into
serial tones to be transmitted over a fre-
quency modulated channel. One channel
is from the Tee Toddler car to the PDP-11
computer at 96 MHz. The other channel is
from the PDP-11 computer to the car at
450 MHz. The serial data encoder and
transmitter at the PDP-11 base station are
essentially identical to the car's versions
except for the number of bits per word of
data. A two-tone modulation system is
used. This means that each binary state is
encoded into one of two different frequen-
cies for transmission. At the modulator a
logical 1 is represented by a 2500 Hz signal
and a logical is represented by a 1900 Hz
signal.
The receiver and data decoder accepts the
string of audio tones from the FM receiver,
decodes them into 1s and 0s using phase
locked loops and converts back to a parallel
data format. While our prototype did not
use standard circuitry, a standard asynchro-
nous serial communications discipline such
as that provided by a UART or ACIA would
work well in this application.
Power Sources
The power for most circuits is derived
from a 1 2 V 4.5 Amp-Hour GeLi cell recharge-
able battery. The battery was drilled and
tapped at 8 V to power a 5 V regulator for
the TTL circuits and for the Z-80 micro-
computer. The steering servos required
their own set of four penlight batteries (also
rechargeable), and the 1702 read only mem-
ory holding the Z-80 program required a
separated -9 V supply, derived from three
parallel transistor radio batteries. This power
supply system is capable of running the car
for several hours before any recharging is
necessary.
Computer Control
As has been mentioned, the car is con-
32 Augusi 1978 © BYTE Publications Inc
trolled by two separate computers. The com-
munication paths between the computers
and the car are shown in the system diagram
of figure 5. In actuality, only one of the
computers can communicate with the car at
a time. This is the case for several reasons.
First, there are only three control inputs to
the car to make it operate. These are the
speed, direction and steering controls. Since
these inputs can originate at either com-
puter, a multiplexing scheme had to be used.
Second, only the PDP-11 actually makes
decisions based on sensor information
from the car. The Z-80's control of the car's
movements is more like a reflex action, in
that it performs a canned routine when
invoked by the car's sensors. Last, the func-
tions are separated to facilitate the transition
to a total on board control system, since the
PDP-1 1 can be replaced easily by another on
board microcomputer.
The motivation behind this configuration
is based on several criteria. Since part of the
system was going to be standing alone, some
of the major considerations were power
consumption, various power supply require-
ments and ease of operation. With all these
considered, it was decided that a Z-80 with
its single 5 V power supply requirement and
single phase clock was a logical candidate.
The 1 6 bit PDP-1 1 was used because it could
do computations at a greater speed than the
8 bit Z-80.
The on board microprocessor has several
functions associated with the control of the
car. One function is to supervise all data and
control channels to and from the car. In
other words, it has the responsibility of
deciding whether the PDP-11 or the Z-80 is
going to control the movements of the car
and which of the two computers is going to
receive the information from the car's sensors.
The routing of these different channels of
information is accomplished by the use of
data selectors. The Z-80 controls the data
selectors such that the information is routed
to the correct device at the correct time.
Information coming in to the car to control
its movements comes from either the
PDP-11 or the microprocessor. It comes
from the PDP-11, over the radio link, if the
car's sensors indicate one of the following
conditions:
• The car has reached the source light.
• An object has been detected by the
sonar system on either the left or the
right.
• The car has spotted the source light.
The PDP-1 1 then analyzes these condi-
tions according to the hierarchy of impor-
tance, as is shown in the decision tree of
algorithm 1, and then communicates to the
f START J
YES
J
I
\AT LIGHT^-
|no
/6bject\
<f DETECTED >
\bv sonar/
[no
/sourceV
S LIGHT \.
STOP CAR,
RECEIVE
MOVEMENT
VECTORS
FROM Z-80
YES
YES
^DETECTED/
[NO
CONTINUE
PRESENT
COURSE
ADJUST CAR
PATH
ACCORDINGLY
".
Algorithm I: The base computer's executive program in outline form. This
decision tree is executed in the PDP-1 1 each time a car sensor word is received.
If any of the tests results in an affirmative answer, the program executes a
routine designed for that specific state. Each routine takes into account
past information of where the light was spotted. The sonar detection routines
also take into account any objects which have recently been passed. These
things are considered so that the car proceeds in the direction of the light
and does not collide with any objects while moving in reverse. There is no
specific way to stop the system except by interrupting the PDP-1 1 and issuing
a control word to the car to stop it.
car the appropriate movement corrections
to make. Control information to the car
originates from the Z-80 when one of the
following car sensor conditions arises:
• Contact with an object has been
indicated on either the left or right
side by the front bumper.
• The car has lost sight of the source
light.
The microcomputer controls the movements
of the car if either condition is met and then
gives control back to the PDP-1 1 when it
has finished its corresponding task.
Another function of the on board micro-
computer is to store all movement vectors
associated with the car's path. These vectors
indicate the steering angle, the direction of
travel and the length of travel of the car.
Therefore, when the car changes direction or
steering angle, a vector is stored in memory
which correlates to how far the car traveled
at the previous setting. Thus, when the
task of finding the light is accomplished,
the on board memory contains all the
different moves the car made to reach
August 1978 © BYTE Publications Inc 33
Une __* advan<
WP
ljke Hazelti" e »
my llKe
*
M**"" *,**
34 BYTE Augusc 1978
A
Avai
Sw«
Hazeltine
Hazeltine Corporation, Computer Terminal Equipment, Greenlawn, N.Y. 11740 (516) 549-8800 Telex 96-1435
EAST: NY- (212) 586-1970 ! [CENTRAL: Chicago 1312) 986-1414 V SOUTH: Atlanta (404) 952-8444 ' .WEST: Burlingame (S.F.) (415) 342-6070
ENGLAND: Hazeltine Ltd. 01-948-3111 Telex (85D-928572 . GERMANY: Hazeltine GmbH 0611-590748 Telex (841)416924
FOR WORLDWIDE SALES INFORMATION CALL: (516) 549-8800
Circle 156 on inquiry card.
BYTE August 1978 35
f START J
INITIALIZE
DATA AND
CONTROL
PATHS
NO
CES
Jyes
/bumper\.
BACK UP,
THEN FORWARD
PAST OBJECT
\RIGHT y?
r-ES
"1
|N0
/bumperN.
BACK UP,
THEN FORWARD
PAST OBJECT
S. LEFT S
r-ES
*",
| NO
/coursers
STORE
MOVEMENT
VECTOR
^.CHANGE jr
rES
*
|N0
S LOST N>
BACK UP
UNTIL SEE
LIGHT THEN
FORWARD
\ LIGHT S
*1
NO
DUMP
TRANSMIT
MOVEMENT
VECTOR
Algorithm 2: The mobile computer's executive program, in outline form. In
the initialization procedure the Z-80 sets up the memory areas, resets the
wheel rotation counter and sets the data selectors for the PDP-J I to control
the car and the car sensor status word to be transmitted to the PDP-1 1. The
processor then awaits an interrupt. When the Z-80 is interrupted, the tests are
executed in this order. After each routine is completed, control is returned to
the PDP-11.
the light. With this information the car
has a new path calculated for it by the mini-
computer. This path allows the car to drive
to the light from the same starting position
without the use of any of its sensors and
without having to maneuver around a single
object, since it already knows where they
are located. In a very loose sense then, the
system has learned about its environment
and used this knowledge to improve its pro-
ficiency at the task of finding the source
light, much like a mouse in a maze.
The last major function of the micro-
computer is to pass the movement vectors
to the PDP-1 1 once the car has reached
its destination. This is accomplished by
having the minicomputer issue a "dump"
command signal over the radio to the Z-80.
Using a handshake system, the Z-80 sends
the movement vectors to the PDP-1 1 one
at a time. The decision hierarchy of the Z-80
program is shown in algorithm 2.
PDP-1 1 Base
The PDP-11 minicomputer is the actual
brain of the system. It has the ability to
decide where to move the car in order to
approach the light and yet avoid objects on
the way. Inputs to the PDP-11 come from
either the car's sensors or the microcomputer
memory. If the inputs are from the car they
indicate the current status of the sonar left
and sonar right sensors, the 360 degree
rotating eye and the source light intensity
monitor. These are processed according
to the following hierarchy. First the source
light intensity monitor signal is checked to
determine if the car has reached its destina-
tion. This indicator is checked first because
it will indicate if the total task has been
accomplished. If this condition is true,
the PDP-1 1 computer sends a message to the
car telling it to stop and telling the Z-80 to
start unloading its memory of movement
vectors. The handshake system used is initi-
ated by the car informing the PDP-11 base
computer that the car has reached the light.
The minicomputer then informs the micro-
computer to start unloading the memory,
at which time the minicomputer checks
each incoming vector to determine if it is
the last. If not, the PDP-11 asks for another
vector to be transferred. This continues
until all vectors are transferred.
Second, the sonar sensor inputs are
examined to see if any objects are being
detected. If an object is detected, then a
special routine analyzes the situation accord-
ing to which side the object is detected
and how far away it is. If the object is far
enough away for the car to maneuver around
itwithouthavingto back up, then the PDP-1 1
commands the car to steer to the left or
right, whichever is appropriate, to avoid the
object which is in the way. If the object is
detected by both sensors, then the side
which detects it as being closer overrides
the other. In the event that the distance
measurements are equal, the computer
arbitrarily chooses the right side as having a
higher priority. Obstacles detected at a
range too close for the car to maneuver
around while proceeding forward cause
the car to back up. An obstacle detected
at a very close range on the right causes the
car to back up. However, the steering
position for this movement depends on
whether the car was steering to the left,
right or center. If the car was proceeding to
the right, then it must know, from a previous
sensor reading, that the source light is to the
right. If this is the case, the car backs up
36 August 1978 © BYTE Publications Inc
GET THE ^ LOW DOWN BEFORE YOU BUY
SO YOU WANT TO
BUY A COMPUTER??
This new book presents an objective look at the top 24 micro systems sold
throughout the world.
It discusses the Pros and Cons of each system in No Uncertain Terms and takes a
straightforward look at the micro computer industry as it relates to YOU.
Written especially for the layman in a language he can understand. Profit from the
mistakes of others.
Includes hundreds of references.
Table of Contents
1 . Introduction
2. Don't get hung up on the chips
3. Which category do you fit into
4. Now -About the Hardware
5. Peripherials that plug in?
6. What? No Software!
7. Helpful Suggestions before spending money
8. Addresses
$4.50 per Volume
Volume discounts available
SCIENTIFIC RESEARCH
P.O. Box 490099-B
Key Biscayne, Florida 33149
Phone Orders Call 800-327-6543
Add $1 handling, all domestic shipments
sent U.P.S. except APO and P.O. Box
which go parcel post. Foreign orders add
$4 for air shipment and make payable in
U.S. funds.
BYTE August 1978 37
is
&■
Jr
INITIAL PATH
OF CAR
AFTER SIGHTING
TURN WHEELS
CASE A «
LIGHT SEEN AT
POSITION 4
r\ /
INITIAL SIGHTING
WITH CAR AT
THIS LOCATION
\
\
TAKE PATH A \
' . AFTER SACK UP ,
N FOLLOWING
S> POSITION 4
K SIGHTING
\
\
\
CASE 8
LIGHT SEEN AT
POSITION 2
BACK UP ON CURVED PATH
AFTER SIGHTING THROUGH
FIXED LENGTH
\
\
TAKE PATH 8 ^
AFTER BACK UP S
FOLLOWING *.
POSITION 2
SIGHTING
CAR AT THIS
LOCATION AFTER
BACKING UP
Figure 6: This diagram illustrates paths the car can make when confronted
with typical situations. Assume the car is moving straight and forward and
detects the light in either the number 2 or 4 position. The PDP-1 1 has control
and moves the steering to the right and backs up for a certain distance. If the
light was spotted in position 4 the car proceeds along path A with the steering
set back to the center. But if the light was spotted at position 2 the car moves
along path B with the steering set to the left. If the light had been spotted at
position I, almost directly behind the car, the maneuver would also have been
along path B. However, since it would not be able to approach the light at a
very straight angle, it would have to back up again and set the steering for a
more direct path.
with the steering set to the left. After backing
up for a certain amount of time, the car
changes the steering to the right and pro-
ceeds forward. This causes the car to maneu-
ver around the obstacle and also sets it on a
better path to the source light. In effect, the
car has used past knowledge to evaluate the
present situation. If the steering had been to
the left originally, then the computer would
set the steering to the right. The car then
proceeds in reverse for a given amount of
time and then changes its steering position
to the left and proceeds forward for an
additional period of time. This action makes
the car maneuver around the object and
along a better path. An original steering
position in the center again causes the right
side to override the left. Although all these
controls and decisions are handled by the
minicomputer, the results do incorporate
the use of the on board microcomputer.
The microcomputer is used to store all
movement vectors pertaining to all direc-
tion or steering changes. This is accomplished
by having the PDP-11 computer issue a
course change signal to the Z-80 at the
same time it issues the new control word
to the car. The Z-80 on board computer
then stores the previous movement vector
in memory, then returns control to the
minicomputer.
The third sensor readings used by the
PDP-1 1 are the values from the rotating
eye. These sensors indicate where the
light is located with respect to the current
position of the car as shown in figure 2.
Basically, the world, as the car sees it, has
been divided into 16 windows, each allowing
a different view of the horizon. A number
has been assigned to each separate slice, thus
giving an easy identification and recognition
scheme for evaluating the position of the
source light. For example, the semicircle in
front of the car has nine windows associated
with it, four to the left, four to the right,
and one for the center. Thus, since straight
ahead has been declared as having a value of
8, then the far left becomes 4 and the far
right becomes 12. Therefore, by examining
the value, the computer can tell where the
source light is and then adjust the path to
proceed in that direction. If the light is
spotted in the forward semicircle between
values 5 and 11, the course adjustments are
quite straightforward. The steering is merely
positioned so as to point the car in the
direction of the light.
However, if the light is spotted in the
aft semicircle or to the extreme sides, a
different approach must be taken. Instead
of having the car do a complete 180 degree
turn, we decided to have the car perform
several backward and forward movements.
By doing this we reduced the possibility
of contacting objects by reducing the space
needed to perform the maneuvers. For
example, if the light is detected in the num-
ber 1 through 4 windows, the computer
backs the car up with the steering set to the
right. The distance it backs up depends on
which window the light was spotted in. For
example, if it was spotted at position 4, the
extreme left, then the car would back up
far enough so that when it stopped it would
be facing directly toward the light and could
then proceed in a straightforward direction
(path A in figure 6). If, however, the light
had been spotted more to the rear, the car
would back up a bit further and then have
the steering set to the left position and pro-
ceed forward. The exact opposite action
would have taken place had the light been
38
August 1978 ©BYTE Publications Inc
UNDERSTANDING MICRO-
COMPUTERS answers these
and hundreds of other ques-
tions clearly in this profusely il-
lustrated, easy-reading "must"
book. You'll find fundamental
concepts behind the operation of
virtually all microcomputers, writ-
ten in simple English so that any-
one can gain the extra knowledge
needed to read and understand
computer magazines, manufac-
turers' literature, and feel "at
home" around computers. Here
are just a few items discussed . . .
— How a CPU is organized and
how it follows sequences of di-
rectives to solve problems
— Illustrates basic instructions
from almost every class of mi-
croprocessor
— Discusses common memory
addressing modes— illustrates
typical uses
What you must know to tell a
computer what to do when us-
ing machine language pro-
gramming methods
- Explains use of flow charts,
program worksheets, hand as-
sembly of source codes into
object codes, memory maps,
purpose of an Editor, Assem-
bler, Monitor
Benefits of using a high level
language
•Introduction to BASIC
How a computer communi-
cates. Types of commonly used
input/output devices and their
operational concepts
Practical aspects of selecting
a small computer system
Plus, hundreds of other practi-
cal facts and information
If you are at all curious about
small computers, you must own
this 300 page no-nonsense text
that reads like a simple book! In-
cludes an easy-to-use glossary
of key microcomputer oriented
words. UNDERSTANDING MICRO-
COMPUTERS. The name says it
all. Order your copy now!
fT ICELBI COMPUIED
fccOMIllYIMO INC.
^^ Dept. 000
Post Office Box 133 PP STN
Milford, CT 06460
Price shown for North American customers. Master
Charge, Postal and Bank Money Orders preferred.
Personal checks delay shipping up to 4 weeks.
Pricing, specifications, availability subject to
change without notice. SCELBI Books are avail-
able in many fine Computer Stores.
Now available in hardcover for only $14.95 . . .
and paperback for only $9.95. Order yours today!
Circle 310 on inquiry card.
IMPORTANT! Include 75iJ postage /handling
for each item delivered by U.S. Mail Book
Rate; or $2 for each item shipped First
Class or via UPS.
BYTE August 1978 39
RIGHT BUMPER
CONTACT WITH
OBJECT INVISIBLE
TO SONAR
BACK UP WITH
STEERING RESET
MOVE FORWARD
ON NEW COURSE
TOWARD LIGHT
BUT NOT IDENTICAL
TO BACKING UP
HEADING)
spotted on the opposite side. Once again the
on board computer would have been inter-
rupted to store all course changes associated
with the maneuvers. The problem of running
into objects while proceeding in reverse is
actually of minimal concern due to this
method of reaching the light when it is
spotted in the rear. If there had been an
object there it presumably would have been
detected and the path adjusted accordingly.
However, this adjustment would not have
been made without taking into account
where the light was being spotted. Since
this is the case, it is not possible for the car
to be turning left or right in a forward direc-
tion if the light is actually behind the car.
If, however, the light has not been spotted
yet, then it is feasible that the car can run
into something in its reverse move, since no
attempt is being made to look back into the
movement vector memory to determine if
an object has just been maneuvered around.
The final function of the minicomputer is
to stop the car once it has reached the
source light. This is accomplished by detect-
ing the source light intensity monitor bit as
it changes to the active state. Once this
occurs the minicomputer stops the car and
at the same time initiates the handshake
operation with the on board computer to
start the transfer of the movement vectors.
The minicomputer stores these vectors as
they come over the radio until all have been
passed. The last vector is actually a null
vector, or all zero, which indicates all vectors
are transferred. The minicomputer now
does one of two things. It can automati-
Figure 7: This diagram illustrates two dif-
ferent situations of the car having contact on
the right with an obstacle. The obstacle
size is exaggerated for the sake of illustra-
tion. The diagram on the left depicts the car
steering to the left toward the light when
it strikes the object. The Z-80 takes control
and adjusts the steering to the right and
backs the car up a certain distance. The
steering is then set to the center position and
the car proceeds forward. On the right, the
car is proceeding to the right toward the
light. Here the Z-80 sets the steering to the
left, backs the car up then adjusts the
steering to the center and proceeds forward.
In each instance the car maneuvers around
the obstacle and on a path toward the light.
cally plot out a new course for the car
to take, or it can display the vectors graph-
ically on a screen. With the latter method
the user is able to see all the moves and
recalculate a new path himself based on his
visual perception of the path taken. The
automatic method is simply a sequential
analysis of the vectors by the computer.
If the car makes a move in reverse the com-
puter assumes that either an object was
detected or the light was spotted behind
the car. In either case the computer adjusts
a move previous to this occurrence, thus
allowing the car to anticipate the upcoming
situation and act in accordance with the
situation. By adjusting these movements
prior to detecting the need to reverse direc-
tion the computer has eliminated this need
altogether and has thus "curved out" the
path, making broad sweeping turns as
opposed to jerky forward and backward
movements.
40
August 19780BYTE Publications Inc
Microcomputer Functions
The on board Z-80 computer provides the
reflexes and signal control for the whole
system. In the event that the car hits a thin
object which is not detected by the sonar,
a reflex action is invoked, much like a human
response to a given stimulus. The various
reflex actions this computer controls are:
loss of sight of the light and touch stimulus
from either sides of the bumper. To initiate
a microcomputer routine for either the
reflex actions or the control functions, one
of the following interrupt inputs must
become active:
A signal from the front bumper.
A signal indicating loss of the source
light.
A course change.
A request to dump the movement
vectors.
All these signals are ORd together, thus
enabling any one of them to initiate an inter-
rupt. When the Z-80 is interrupted it interro-
gates an external buffer to determine which
condition caused the interrupt. The program
(see algorithm 2) then checks each bit, one
at a time, to determine which one is active.
If more than one is active, it only processes
the first one checked which is active. If none
of the lines is active, then the program
defaults to the dump line being active. Upon
determining which stimulus is active the pro-
gram executes a specific routine for that
particular interrupt.
The bumper right and bumper left routines
are essentially the same except for the steer-
ing positions being reversed. If contact is
detected with the right side of the bumper,
the Z-80 receives an interrupt and the car
automatically backs up. Figure 7 illustrates
the bumper reflex. The direction in which it
backs up depends on the direction it was
travelling when it collided with the object.
If the steering was set to the right, then
it must have previously detected the source
light to the right (see right illustration in
figure 7). Then, in order to maintain this
general direction, the car backs up with the
steering set to the left. After backing up for
a certain time the car sets the steering to the
right and proceeds forward past the object
and toward the light. Although this setting
is not a direct heading toward the light it is
in the general direction and it has avoided
the object.
If the direction of travel was to the left,
(left illustration, figure 7) then the car backs
up with the steering to the right and then
proceeds forward with the steering set to
the center. All steering actions would simply
be reversed for a contact on the left. There-
POSITION A
(LIGHT OBSCURED
BY OBSTACLE) /
/ I \
* BACK UP ALONG '
I CURVE WITH CENTER ;
| TO RIGHT * /
POSITION B
BACK UP ALONG
CURVE WITH
* CENTER TO LEFT
POSITION C
Figure 8: This diagram illustrates the Z-80
reflex for the case in which the car has lost
sight of the light at position A. The Z-80
instructs the car to do a reverse S turn. First
it adjusts the steering to begin the turn and
travel to position B. Then it adjusts the
steering to have a center of curvature to the
left and continues reverse travel to position
C. At the end of the path, the steering
is again set to the appropriate position for a
course towards the light and the car resumes
forward travel without its goal being obscured
by the obstacle.
fore it is easy to see that all the reactions to
the stimuli are preprogrammed and always
net the same result, thus they exhibit a
reflex action.
The other reflex action is quite similar
(see figure 8). If the car is travelling in any
direction and loses sight of the source light,
then apparently what has happened is that
an object has come between the car and the
light, thus obscuring the car's "vision" as at
position A in figure 8. Although the car
knows the object is there, it cannot detect
August 1978 © BYTE Publications Inc 41
its exact location. What the car does then is
back up with the steering in the same
position, then after a certain time it changes
the steering to the opposite side and con-
tinues to back up. It continues backing for
another period of time and then sets the
steering to the center and proceeds forward.
This procedure causes the car to move to a
new position where it can again see the
source light. This again exhibits a certain
reflex action controlled by the Z-80.
Since these reflex routines involve many
adjustments to the car's path, it is necessary
to record all of these separate movements.
Therefore, at the end of each segmented
move the routines call on the course change
routine to record the current wheel rotation
count, direction of travel and the steering
position. This course change routine can be
called on from either the Z-80 through
another routine or directly from the PDP-1 1 .
The routine reads a buffer register which
contains the current number of wheel rota-
tions at this particular steering and direction
position. Once this vector is stored in mem-
ory, the routine resets the wheel counter to
zero in order for it to count the correct
number of revolutions at the next steering
and direction setting. The last function of
the Z-80 is to transfer all the movement
vectors from the on board memory to the
PDP-11. As has been discussed, the Z-80
responds to a request from the PDP-1 1 by
sending the vectors on a last in first out
basis, one at a time in correspondence with
the handshake system. Once all vectors are
passed the Z-80 reinitializes the car and
passes control to the minicomputer.
After any of these routines has been proc-
essed the Z-80 returns control of the car to
the PDP-11.
Computer Design Specifics
The microcomputer designed for this
robotic application is equipped with only
the bare essentials. The total system con-
sists of 256 bytes of programmable read
only memory, I K bytes of volatile pro-
grammable memory, three bidirectional IO
ports, one Z-80 microprocessor and one 8
bit line driver. The read only memory is a
1702 UV erascable part which contains the
program. The programmable memory is
made up of eight 2102 parts. The IO chip is
an Intel 8255 and was chosen because of
the number of ports available.
When designing a dedicated system like
this, one must keep in mind that the proba-
bility of it working the first time is very
nearly zero. Therefore, care must be taken
to make the system as easy to debug as
possible. This system was designed with this
in mind and thus several additional functions
were included in the design. A reset switch
is installed on the computer board to aid in
checking different functions of the system
under the same circumstances. A single step
switch is also located on the board. By using
this, one can step through the program and
examine different signals to determine their
validity. The line driver was installed specifi-
cally to allow the examination of the data
lines. Included in the design are provisions
for the addition of 1702 memory chips up
to a total of 1 K bytes of program memory.
Since the system was of a prototype nature
it was built on a perforated board and was
wire wrapped. Care was also taken in the use
of the PDP-11. Before the final application
program was written several simple test
programs were written which checked out
the two way radio links and the responses of
the car to commands. With the test programs
it was possible to enter commands at a termi-
nal and control the actions of the car in a
remote control fashion as well as to receive a
continuous read out of the current status of
the car's sensors which are used by the mini-
computer. This proved to be one of the
invaluable debugging aids of the overall
system.
Concluding Comments
Projects involved with robotics are a logi-
cal extension of microcomputer technology.
The possibilities of building such dedicated
"artificially intelligent" machines are almost
limitless. It is not unreasonable to think that
personal computer experimenters could build
a robotic machine at home. However, a little
forethought is worth a lot of time and effort
in the end. Think about what the machine
is going to do, and what is necessary to
accomplish this. Build the system in modules
which are easy to interface to each other and
also easy to debug and repair. The capabilities
of the machine are only bounded by the
imagination of the designer. Perhaps the
ultimate goal of a robotic machine is to have
it perform its designated task consistently.
We think that Tee Toddler has proved
an adequate fulfillment of that goal in the
limited context of a light seeking mobile
device. ■
42 August 1978©BYTE Publications Inc
Memory Makes the Computer,
Central Data Makes the Memory
Memory is an important part of a computer
system. So don't even think of settling for a
poor quality RAM board. Central Data offers
carefully engineered 16K, 24K and 32K RAM
boards to suit your needs. We take our RAM
boards seriously, so should you.
Reliability. Each one of our boards comes com-
pletely assembled, tested and burned in. No
fiddling with an infinite number of parts from a
kit or costly investment in equipment to test
your board. Each one of our boards is backed by
a one year warranty to insure your satisfaction.
Expandability. We offer a 1 6K RAM board
with capacity to 32K. You can purchase a 16K
board and expand later or buy a full 32K .
I
Please send me the following: Name
D 1 6K RAM board ( $ 289) Address _
□ 32K RAM board ($475) City
□ additional information State
I enclose $
111. residents add sales tax.
I Central Data P.O. Box 2484, Sta. A Champaign, II 61820
Circle 45 on inquiry card.
Performance. Unlike some dynamic memory
boards, ours uses an invisible refresh that inserts
refresh cycles between your computer 's normal
memory access cycles. This eliminates loss in
performance of your computer with lengthy
refresh cycles.
Power. Our board uses less than one-half the
power of a static RAM .
Price. You can buy a 16K RAM board, com-
pletely ready to use, for only $289. A full 32K
RAM board is available for $475, or you can
add on later for only $200.
When you buy our memory board, you'll
be buying the best equipment at the best price.
Order yours today by mail or phone.
"1
Zip„
Central
data
P.O. Box 2484, Sta. A
Champaign, 1161820
(217)359-8010
BYTE August 1978 43
SYNCHRO SOUND
ENTERPRISES, INC.I
One-stop shopping
for Hardware and Software
Everything you need in small computer systems with special emphasis
on TERMINALS! Look at these units... compare price, quality, delivery,
service.. .and you'll see why you don't have to look anyplace else!
LEAR SIEGLER ADM 3A TERMINAL
• Full addressable cursor
• Display format— 24 lines
of 80 characters per line
• Communications rates— 75 to
19,200 Baud
• Computer interfaces
— El A standard
ADDS REGENT 100
VIDEO DISPLAY
TERMINAL
Display Format— 80 characters per line by 24
lines. 25th line reserved for terminal status. Re-
verse video, underline, half and zero intensity
and blinking are all standard features.
ADM3A
Kit ....
ADM3A
Assembled . .
Lower Case
option
$759.95
854.95
69.00
$1325.00
TELETYPE MODEL 43 PRINTER
• 132 Characters per line
• 110 or 300 Baud switch selectable
• Full keyboard
• RS 232C Serial Interface standard <£lOQQ QO
OKIDATA MODEL 110
LINE PRINTER
• 110 CPS dot matrix
Feed" $1199.00
EST 1349.00
RS 232C
Interface... 260.00
OKIDATA MODEL 22
LINE PRINTER
• 125 lines per minute
132-column print line
• Upper/lowercase
• 8 different
character sizes
• 12 IPS paper slew
Tractor Feed $2449.00
RS 232C Serial Interface. . . 379.00
/
DECWRITER II
• 132 column printing
• 10-30 CPS
• Full keyboard
• Tractor feed
$1495.00
44 BYTE Auguil 1978
Circle 356 on inquiry card.
SYNCHRO-SOUND
ENTERPRISES, INC.I
CENTRONICS
703 SERIAL
PRINTER
• Low
cost
of ownership
• Bidirectional logic seeking printing
• Microprocessor electronics
• Excellent print quality
CENTRONICS 761 PRINTER
• 300 Baud serial transmission
• Bidirectional and incremental printing
• RS232, CCITT-V24, or
current loop interface
• Baud selection (110/150/300)
$2025.00|
Receive only version
1895.001
KSR with Keyboard.
$2805.00
IMSAI 8080 MICROCOMPUTER
• Powerful • Low cost • Easy to use
^. " ... .
£tt%»«»
IMSAJ 8080
j£BJigsf«*£
With 22 Slot
Mother Board
$649.95
PCS-80/15 Kit
699.00
HAZELTINE1500
VIDEO TERMINAL
• Reverse video
• 24x80 display
• Programmable
brightness level
• RS232 and
current loop
and much more
Assembled
$1149.00
FLOPPY DISK
SYSTEM
• Fully IBM 3740 media
and format compatible
• Full formatter
and controller
built-in A
$2475.00
Digital Systems
Dual Drive System
Dual Density
Version
2745.00
HAZELTINE MODULAR 1
INTELLIGENT TERMINAL
• 1920 character display
• 8 different video levels
• Full editing capability
• Removable keyboard
and much more
Assembled ....
$1659.00
We carry a full line of the following: TDL,
Centronics, Seals, Hazeltine, Micropolis, Vista,
Hayden, IMSAI, Cromemco, Digital Systems,
Compucolor, Icom, Lear Siegler, Okidata,
DEC, Javelin, North Star, Peripheral Vision.
Same day delivery and shipping on most
items. Full modern repair facilities on
premises for complete servicing of
everything we sell.
SPECIAL BUYS
Vista V80 Floppy Disk System $619.95
Cromemco Z-2 Kit 565.25
Compucolor 8001 ColorComputer 2595.00
IMS 16KStatic Memory 525.00
North Star Microfloppy Disk Kit 599.00
North Star Horizon 1 Kit 1499.00
North Star Horizon 2 Kit 1899.00
Javelin 9" Video Monitor 159.95
Livermore Modem Model 76 299.00
Micropolis Model 1053MOD 2 1799.00
IMSAI AP44-44 Col. Printer Kit 299.00
TDL Xitan Alpha 1 Assembled 939.95
SYNCHRO-SOUND enterprises, inc
The Computer People
193-25 Jamaica Avenue,
Jamaica, New York 11423
212/468-7067 TWX: 710-582-5886
Hours 9-4 daily Visit our new showroom
and Saturday Working units on display
Depi. bbb BankAmericard* Master Charge
Circle 356 on inquiry card.
BYTE August 1978 45
The LFD-400 is ready to plug in and run
the moment you receive it.
Nothing else to buy! Not even extra memory!
YOU GET:
O The popular Shugart SA400 minifloppy™ drive. Drive alignment
is double checked by PerCom before shipment.
© The drive power supply — fully assembled and tested.
LFD-400 Controller/Interface— plugs into the SS-50 bus •
accommodates three 2708 EPROMs • fully assembled and tested.
O MINIDOS™ — the remarkable LFD-400 disk operating system on
a 2708 EPROM • plugs into the LFD-400 Controller card • no
extra memory required • no "booting" needed.
© Attractive metal enclosure.
O Interconnecting cable — fully assembled and tested.
O Two diskettes — one blank, the other containing numerous
software routines including patches for SWTP 8K BASIC and the
TSC Editor/Assembler.
O 70-page instruction manual — includes operating instructions,
schematics, service procedures, and the complete listing of
MINIDOS™.
© Technical Memo updates — helpful hints which supplement the
manual instructions.
(8) 90-day limited warranty.
Minifloppy is a trademark of Shugart Associates.
MINIDOS is a trademark of PERCOM Data Company. Inc.
The LFD-400 is readily expanded to either two or three drives.
Write for details. Send for our free brochure for more informa-
tion about the LFD-400 Floppy Disk System and LFD-400
software.
To save you money, the LFD-400 Floppy Disk System is available
only from PerCom. Because of the special pricing, group and
dealer discounts are not available.
MC and VISA welcome. COD orders require 30% deposit plus 5% handling charge. Allow three
extra weeks if payment is by personal check. The LFD-400 Floppy Disk System is available
immediately. Allow three weeks for testing and transportation. Texas residents add 5%
sales tax.
PEFCOM
PERCOM DATA COMPANY, INC.
Dept B 318 BARNES 'GARLAND, TX. 75042
(214) 272-3421
PERCOM™ 'peripherals for personal computing'
Languages
Fopum
A Homebrew
Pascal Compiler
Herbert Stein
Sterzingerstrasse 18
8200 Rosenheim
Germany
Using Pascal as a language for systems
programming at Fachhochschule Miinchen,
my interest in Pascal grew to the point where
I decided to write a compiler for myself. Be-
gun last October, the syntax analysis stage,
which was built up with recursive procedures,
was written in two weeks. During the next
few weeks I tested the program on a Cyber
175, having troubles with the original imple-
mented Pascal compiler at first. On the 15th
of November I received the first error free
listing, but had to stop testing possible errors
because some lectures and a computer graph-
ics program had higher priorities. In the
meantime, I worked out some of the next
steps in theory.
During further expansion (which means
space allocation, code generation and file
handling), there are some potential difficul-
ties:
• The MicroPascal compiler has to pro-
duce an optimized code, which allows
real time applications and systems pro-
grams written in a high level language.
• The compiler needs features like gar-
bage collection and dynamic space al-
location for recursive subroutines or
variable type declarations to keep the
amount of runtime storage as small as
possible.
• No existing monitor is able to run a
language like Pascal efficiently. (The
TDL system monitor board presented
in the April 1978 BYTE seems to be
headed in this direction.) So I will have
to write a new operating system or
transform an existing one to allow su-
pervisor calls, IO interrupts, process
handling and hardware interfaces for
Teletype, video display and mathe-
matical functions.
46 August 1978 © BYTE Publications tnc
Circle 301 on inquiry card.
• The processor, which has to run the
produced object code, should have bit
instructions (like the Z-80), for han-
dling set types. The Cyber 175 uses a
60 bit word for set types, which per-
mits up to 59 elements in Boolean sets.
The 8 bit words of microprocessors,
which allow sets of up to eight ele-
ments, aren't sufficient for a compiler
implementation. (I have had troubles
during testing of the program on the
Cyber 175 because I used a set type
with 60 elements. I took a long time
to discover my mistake after counting
the set elements.)
• Should the compiler writer allow a
GOTO in a language or not? If so, the
user is able to leave a number of pro-
gram blocks without being concerned
about missing management routines,
which are activated automatically at
normal block ends.
If the GOTO isn't allowed, the pro-
grammer has to write structured pro-
grams, using special instructions like
repeat . . . until or while . , .do, and
couldn't leave begin . . . end blocks
arbitrarily. Each block is closed with-
out additional program management
for controlling unpredictable (at com-
pile time) GOTO statements in object
code.
• The last problem is that I don't own a
microprocessor system, but intend to
buy a small Z-80 system this month or
next. Being familiar with instruction
sets and operating systems of large ma-
chines, like Interdata, or larger ones,
like the IBM 370, I have little experi-
ence with microprocessor systems.
Some time will pass until I can build
up and expand the microprocessor to
be able to run cross-compiled Z-80
object code.
Working as a cross-compiler on the Cyber
175, my compiler will translate itself to a
loadable form for a microprocessor system.
If possible, I want to design another syntax
analyzing stage. The compiler would pick up
routines and expected sequence symbols
from a table, which would contain the syn-
tax description, depending on scanned input
symbols. This technique would make error
recovery much easier, because set types for
sequence symbols would no longer be
needed.
I hope to find people like Stephen P
Smith, who are interested in an implementa-
tion of a Pascal compiler for microprocessors
and who will inform each other personally
or through BYTE's Languages Forum, be-
cause it seems impossible for individuals to
tackle such a project."
Pi
i^Xfi^fW
ptionai
satilityandcon
) your S-100 bus
:em with the
./!..
J K/UCU UJ
■v
mm
XB1 Extender Board
Board Only S9.00
With Connector $13.50
• 9 m •
• • • •
;::::::::
MT1 15 slot Mother Board
Board Only $45.00
With Connectors $105.00
MB4 4K Static RAM (low power)
Kit $129.95
VB1B Video Board
Kit $149.95
MB6A 8K Static RAM (low power) SB1 Synthesizer Kit
Kit $165.00 Kit $149.95
finm BnmnlfnmmnmmnniinMnif
MBS 2K/4K EPROM (1702A)
Kit less PROM's S65.00
2K— $1 05.00/4K— $145.00
t/02 Interface Board
Kit $55.00
MB7 16K Static RAM (low power)
Kit $449.00
We're the blue boards!
Compare the Cybercom blue boards with any others on the market
today. You'll find exceptional quality plus prompt delivery and
significant cost savings. All Cybercom kits are guaranteed 90 days
for parts and labor.
Contact your local computer hobbyist store or write for details.
::: Solid State Music
2116 Walsh Avenue, Santa Clara, CA 95050
Telephone (408) 246-2707
Circle 335 on inquiry card.
August 1978 © BYTE Publications Inc 47
We're looking
for an
endangered
species.
We're looking for the
rare bird who doesn't have his
or her head in the sand.
We're looking for a few free
spirits to help us build Sol
small computer systems in one
of America's loveliest areas,
the Amador Valley, about 30
minutes southeast of
San Francisco.
Only three years old,
Processor Technology Corpor-
ation is a pioneer in the
microcomputer business. We
build the best small
computer systems there are
and will continue to do so.
Our plan calls for new and
even better systems.
We need a few really
good people to help us meet
the plan. We're building
a tight-knit group of original
thinkers who can help us
develop new hardware and soft-
ware and bring these products
to market. Our thinkers better
be doers, too. Our doers have
complete project responsibility
from definition to pilot
production.
We have, of course, most
of the usual benefits. We're
working on the unusual. Even
more important than the
benefits is the opportunity for
you to be you and to see the
tangible results of your efforts.
The future of computing
is personal computing, and we
hope it's your future, too.
Right now we have
openings for:
Engineers for
Design, Project
Leadership, and
Product Test
Technicians for
R&D, Marketing
Support, and
Production
Senior Technical
Writer/Editor
For immediate and
confidential consideration,
stop by, phone or send
your resume to our Personnel
Department. We interview
and receive calls between 1 and
5 PM daily.
PnocessorTechnology
Processor Technology Corporation
7100 Johnson Industrial Drive
Pleasanton, CA 94566. (415) 829-2600.
Glubs end
Newsletters
Conducted by Laura Hanson
The Alliance OH Microcomputer Club
The Alliance Microcomputer Club is
a recently formed organization located
in Alliance OH. According to Gary S
Fix, president, the group's goals are
"to provide individuals in the Alliance
area with the opportunity to share
interests and experiences in exploring
microcomputers as a hobby, career,
social activity or curiosity." Meetings
are held on the first Tuesday of each
month at 7 PM. For further information
about this new club, contact Gary at
3885 Norwood Av, Alliance OH 44601,
or call him at (216) 823-8996.
SC/MP and SC/MP-II Users Group
Tom Bohon of Omaha NB has in-
formed us of a SC/MP and SC/MP-II
Users Group which has been formed.
Members may take advantage of a
library of both software and hardware
information available on a cost basis.
In addition, a bibliography of SC/MP
articles, advertising, programming hints,
etc, is available to members for the
reproduction cost. The construction
of a homebrew system based on the
SC/MP-II is also in the planning.
No dues or fees are involved. How-
ever, in order to receive the monthly
newsletter, send a self-addressed stamped
envelope to Tom Bohon, 2215-A Walker
Dr, Omaha NB 68123.
North Orange County Computer Club
According to Gary S Dickinson, the
North Orange Computer Club is alive
and well in Southern California. The
correct mailing address is POB 3603,
Orange CA 92655 and the phone num-
ber is (714) 998-8080.
KIM-1 Users Group
Anyone inerested in forming a KIM-1
Users Group in the San Fernando Valley
area of California should write Jim
Zuber, 20224 Cohasset #16, Canoga
ParkCA 91306, or call (213) 341-1610.
COSMAC-1802 Users Group
We have been notified by Patrick
Kelly that a COSMAC-1 802 Users Group
is being formed for the purpose of
corresponding, exchanging software and
ideas and possibly publishing a news-
letter. Membership is free and individuals
Continued on page 142
48 August 1978©BYTE Publications Inc
Circle 305 on inquiry card.
Photo courtesy of ComputerLand of San Francisco
Computerland, the DP Department Store.
Hazel tine & Diablo en Display.
Time was, buying hardware meant dealing factory
direct. Then came the distributor, or factory indirect. The
phone/mail order ad reads, "15% off." 15% off what? Delivery
schedule maybe. After sales service perhaps. The only real
savings just might be the Toll Free number in the ad.
Now there's an alternative. Introducing ComputerLand, a
national network of DP equipment stores, with outlets across
the nation. This means you, and the DP director, programmer,
general manager or purchasing agent can take a quick ride
across town, try out working equipment in a user environment,
make product comparisons, then drive off with the hardware of
your choice. And, still be back in time for the afternoon coffee
break.
Below is a sampling of the quality business information
products, from more than 60 manufacturers of micro and mini-
computer systems and peripherals, available for you to try out,
buy or lease and take home today from ComputerLand.
ComputerLand
14400 Catalma Street, San Leandro, CA 94577 (415) 895-9363
Franchise opportunities available.
HAZELTINE 1500
D 24 X 80 Display (upper/lower
case) D High legibility 7X10 dot
matrix □ Teletypewriter format for
alphanumerics plus numeric pad D Switch-selectable upper/
lower case DRS -232/C 20 ma. current loop interface
□ Switch-reversible video.
DIABLO 1620-3
□ HyType daisy wheel character printer
a Full keyboard with numeric pad
D Microprocessor controlled DRS -232/C interface
□ 45 CPS D Tractor feed □ Internal power supply.
©Copyright ComputerLand 1978
CALIFORNIA
117 Fremont Sire
COLORADO
CONNECTICUT
3 203 374-2327
DELAWARE
ILLINOIS
50 Easi Rand Road
Arlington Height! 312-255-6488
9511 No Milwaukee Avenue
Nile* 312-967-1714
10935 S Cicero Awnue
MARYLAND
MICHIGAN
2927 -28th
rJGIG-942-2931
Nashua 603-889-5238
NEW JERSEY
1442 E. Route 70
Cherry HIM 609-795-5900
NEW YORK
OREGON
12020 S. W. Main Stre«
Tijjard 603-620-61 70
TEXAS
Circle 75 on inquiry card. "SEE US AT PERSONAL COMPUTING '78 IN PHILADELPHIA, AUGUST 24-27"
WASHINGTON
1500 South 336lhSlreel
Parkway Center, Suite 12
Federal Way 206-838-9363
INTERNATIONAL
52-58 Clarence Street
Sydney NSW 2000
Australia TLX: AA 24757
BYTE August 1978 49
Compilation and Pascal
on the New Microprocessors
Charles H Forsyth and Randall J Howard
Computer Communications Networks Group
University of Waterloo
Waterloo, Ontario
CANADA N2L 3G1
We arc concerned with the use of high
level languages, and in particular Pascal, on
microcomputer systems. We arc most
interested in the use of such languages for
what is termed, on larger computer systems,
systems programming. This includes writing
code to drive floppy disks, interpreters for
APL or BASIC, or all those bits of code that
people have until now written in assembler,
and which in some way make their micro-
computer systems friendly.
Microcomputer users show a generally
high level of sophistication, so it might be
surprising at first that so much of their code
is still written in assembler. The advantages
of writing in a high level language have been
often described in computing literature:
programs can be made more portable; they
exhibit better structure; and they arc easier
to write and debug. In addition, it is much
easier to let a compiler worry about the
efficiency of the object code; and deficien-
cies of the object machine arc hidden. With
the 8 bit microcomputers like the Intel 8080
and Motorola 6800, we feel that there is
little choice but to write in assembler (or
interpreter), since the facilities provided by
their order codes arc simply insufficient to
support most high level languages.
Compilation may be inappropriate for
8 bit microcomputers, but it is the most
attractive alternative for the hybrid 8 and
I 6 bit microcomputers (such as the Motorola
6809), especially with respect to eliminating
most assembly code on these machines. We
also feel that Pascal has facilities that enable
a compiler to generate better code for such
machines than might be expected from
compilers for other languages.
Jensen and Wirth provide the definition
of and tutorial introduction to Pascal in the
Pascal User Manual and Report. Aho and
Ullman's book, Principles of Compiler
Construction, provides an excellent descrip-
tion of the elements of a compiler.
Options
Tiny BASIC, Tiny C, APL, and FOCAL
are implemented on microcomputers with
interpretive code. Interpretation has a num-
ber of advantages. Since the interpretive
language is highly specialized, it can be made
compact. New macro operations can be
added easily as time and experience dictate.
Array and structure addressing and the block
copying associated with array and structure
assignment may be made particularly cheap.
When interpreting array indexing, run time
checks of the index values against the array
bounds are possible (although often left out)
at little extra cost. This is true of other kinds
of debugging facilities as well, such as value
traces or stack tracebacks. Both compiler
and interpreter arc easy to write, especially
if the interpreted code implements a stack
machine. Interpretation's main disadvantage
is that it is slow.
An alternative to interpretation that
alleviates this latter problem of speed some-
what is threaded code, which has been
described as "interpretive code which needs
no interpreter" (see references 2 and 3).
Rather than having a sequence of codes and
an interpreter which reads them, calling out
to the routines implementing each operation,
threaded code simply contains the sequence
of machine addresses of the routines to proc-
ess each operation. These routines, much
like the code segments called by the inter-
50 August 1978 © BYTE Publications Inc
TARBELL SETS STANDARDS
For Hobbyists and Systems Developers
Sales to thousands of hobbyists over the past two years have proven the Tarbell Cassette
Interface to be a microcomputer industry standard. Tarbell Electronics continues research and
development to produce new and efficient components to fill hobbyists' changing needs.
TARBELL
CASSETTE INTERFACE
1 Plugs directly into your IMSAI or ALT AIR *
1 Fastest transfer rate: 187 (standard) to 540 bytes/second
1 Extremely Reliable — Phase encoded (self-clocking)
4 Extra Status Lines, 4 Extra Control Lines
37-page manual included
Device Code Selectable by DIP-switch
Capable of Generating Kansas City tapes also
No modification required on audio cassette recorder
Complete kit $120, Assembled $175, Manual $4
• Full 6 month warranty on kit and assembled units
TARBELL FLOPPY DISC
INTERFACE
• Plugs directly into your IMSAI or
ALTAIR* and handles up to 4
standard single drives in daisy-
chain.
• Operates at standard 250K bits
per second on normal disc format
capacity of 256K bytes.
• Works with modified CP/M*
Operating System and BASIC-E
Compiler.
• Hardware includes 4 extra IC
slots, built-in phantom bootstrap
and on-board crystal clock. Uses
WD 1771 LSI Chip.
• Full 6-month warranty and exten-
sive documentation.
• PRICE:
Kit $190 Assembled $265
mm
mi aio a 5! !
, uiuiliiaii;
CP/M with BASIC E Compatible Disc Drives
and manuals: $100 Ask about our disc drives priced as low as $525.
TARBELL
PROTOTYPE
BOARD
Model 1010
lllllllllll I
Gold plated edge pins
Takes 33 14-pin ICs or
Mix 40-pin, 18-pin, 16-pin and
14-pin ICs
Location for 5 volt regulator
Suitable for solder and wire wrap
ALTAIR/IMSAI compatible
Price: $28.00
For fast, off the shelf delivery, all Tarbell Electronics products may be purchased from computer store dealers
across the country. Or write Tarbell Electronics direct for complete information.
'ALTAIR is a trademark/tradename of MITS, Inc.
CP/M is a trademark/tradename of Digital Research
20620 South Leopwood Avenue, Suite P
Carson, California 90746
(213) 538-4251
Circle 360 on inquiry card.
BYTE August 1978 51
type
begin
end
The listings in this
article were prepared by
arrangement with Walter
Banks of the University of
Waterloo.
Index = 0..I0;
twicelndex = 0.20;
unsigned = 0. .32767;
short = -128. .127;
short Unsigned = 0..255;
thing = record
field 1:0.. 7;
field 2: 0..31
end;
packedThing = packed record
field 1:0.. 7;
field2: 0.31;
end;
a. b: array [index] of integer;
i. j: index;
k: twicelndex;
s: set of (READY. BLOCKED. RUNNING. SWAP1N. SWAPOUT);
a/i/ := bfj/; |the dreaded array-indexing example]
k := i+j; |subranges are useful)
s := /READY. BLOCKED. RUNNING/;\sel operations)
S := S - /READY. RUNNING/;
s := s + /SWA PIN j:
s:~ s* /SWAPIN. BLOCKED/;
Listing I : Pascal program fragment for array indexing.
/Enable indexing off sp
/Fetch address of j relative.,
/to sp into (A,B) register pair
/Shift (AB) pair left by 1..
/yielding integer offset
/Add in 16-bit array
/pointer i to (A,B) pair
/Transfer (A,B) pair to X reg.
/..not re-entrant
/Finally, fetch b[j] into..
/(A,B) pair..
/and push onto stack
/Following code is repeat of..
/above for getting address of.,
/array element a[i]
tsx
Ida
A,;(X)
Ida
B,y+/(X)
asl
B
rol
A
add
B, b+l(X)
adc
A, b(X)
sta
A, temp
sta
B, temp+1
Idx
temp
Ida
A, 0(X)
Ida
B, l(X)
psh
A
psh
B
tsx
Ida
A, i(X)
Ida
B, i + /(X)
asl
B
rol
A
add
B, o+/(X)
adc
A, a(X)
sta
A, temp
sta
B, temp+1
Idx
temp
pul
B
pul
A
sta
A, 0(X)
sta
B, 1(X)
/X now points at a[i]
/Pop b[j] from stack.,
/into (A,B) pair.,
/and store in a[i]
Total code: 52 bytes
Listing 2: Motorola 6800 assembly code for the first
line of the Pascal fragment shown in listing 1.
prcter to implement the pseudo-machine,
provide the run time support for the threaded
code. Rather than return to an interpreter
after it has done its work, though, a routine
simply jumps (indirectly) to the next such
routine in the code flow. Arguments are
passed to these routines in various ways -
for example, by placing values or addresses
between the code pointers.
The third approach to language imple-
mentation is that traditionally adopted on
larger machines: real code generation. This
approach provides the fastest program
execution at the possible expense of space
used by the object code. On almost any
machine, the high level constructs of flow of
control and logical expressions as well as
calls to the intrinsic built-in functions can be
directly implemented as branch or jump
instructions with relatively little expenditure
of speed or time. However, for many of the
existing microcomputers, code generation
for even the simplest of the fundamental
high level language constructs proves effec-
tively impossible. Such constructs include
most common arithmetic operations, array
and structure accessing, and automatic
storage manipulation. Particularly difficult
on some machines are multiply, divide,
modulus and string operations. Therefore it
is important to determine what properties of
a particular machine make it suitable for real
code generation.
8 Bit Microcomputers
A detailed study of the common 8 bit
computers available today (eg: Motorola
6800, Intel 8080) quickly reveals that such
machines are not conducive to real code
generation by compilers for high level
languages such as Pascal.
On such machines, compilations of even
the simplest arithmetic or pointer expressions
lead to a very high object to source code
ratio, if such constructs can be compiled at
all. Listing 2 gives an example of code which
might be compiled for a Motorola 6800 to
implement the Pascal assignment statement:
a[l] :=b[j] ; in listing 1 . The assumption here
is that automatic arrays are implemented as
pointers on the stack to areas of storage
residing elsewhere. In addition, we have
assumed that the compiler keeps track of the
stack offsets for its automatic variables
relative to the moving stack pointer; we are
using the notation / to represent the stack
offset of variable j. In addition to this code
segment, the procedure preamble must set
up the pointers to the arrays a and b (stored
at offsets a and b respectively), to point at
the integer before the beginning of the array.
Thus, for example, a[l j will then be identi-
52 August 1978 ©BYTE Publications Inc
The Most Powerful
Interface Ever
Now for the first time all of these capabilities are avail-
able on one board; the System Central Interface (SCI).
— 2708 programmer and verifier; monitor provides
necessary routines
— RAM stack: 256 bytes for stack and buffer
— Serial port: RS-232, 20mA, 60mA, programmable
speeds from 45 to 9600 baud
— Three parallel ports, each with handshake signals
— Reset-jump (enables CPU to jump to the SCI
Monitor)
— Biphase recording for highest speed, least error
rate (to over 1 00,000 baud)
— Digital comparator — no adjustments ever
— S-100 compatable
© 1978TELETEK
Teletek provides quality interface systems backed by a
reputation established over the last decade. Complete
engineering support services are available for OEM
applications.
For more information call Ann Roberts at (916) 351-
0535 or write us and we will send complete informa-
tion.
DEALER INQUIRIES INVITED
OEM CONTRACTS AVAILABLE
TELETEK ENTERPRISES INC.
11505B Douglas Road
Rancho Cordova, CA 95670
Circle 371 on inquiry card.
BYTE August 1978 53
Let
r -.= | X, Y, S, U |
a := | A, B, D |
x := memory reference
c := constant value
x long relative, short relative, direct
*x long & short relative indirect
$x immediate byte
*$x extended
**$x extended indirect
c(r) ±4, ±7, ±15 bit indexing
*clr) ±7 and ±15 bit indirect indexing
(rl+ Auto Increment by 1 or 2
-Irl Auto Decrement by 1 or 2
*(r)+ Indirect Auto Increment by 2
*-lr) Indirect Auto Decrement by 2
a{r) Accumulator Indexing
*alrl Indirect Accumulator Indexing
Table I: A summary of the Motorola
MC6809 addressing modes.
fiecl with the beginning of the storage
associated with the array a.
Beyond the actual code shown here,
however, the most important insight to be
gained from all of this is the sheer bulk of
code that such a simple construct would
generate (and it is not even reentrant at that).
Imagine how large the object code size
would be for even a reasonably short Pascal
program.
Implementing threaded code is somewhat
difficult on these machines because they
require 16 bit memory pointers, an efficient
mechanism for indirect addressing, and some
method of incrementing such a pointer to
the next 16 bit pointer. At least one of the
above criteria is so troublesome on both the
Motorola 6800 and the Intel 8080 that the
threaded code becomes unwieldy. Thus, for
these machines one has little choice but to
interpret or write in assembler. This suggests
that the interpreters themselves must be
implemented in assembly language.
The above discussion is an attempt to
analyze the reasons why programs written
for 8 bit microcomputers have traditionally
been interpreted or written in assembly or
machine code, rather than being compiled
into "true" code from a high level language.
16 Bit Microcomputers
Previously, the only alternative to the
8 bit architecture was that of the 16 bit
microcomputer. Examples of such machines
include the TI-990/4 and the DEC LSI-11.
While the considerable costs of these proc-
essors tend to make them impractical for
many computer experimenters, and for
those applications in which many processors
arc required, it is instructive to consider
what properties set these machines apart
from their 8 bit counterparts with respect to
code generation. In fact, it can be shown
that, given a machine of sufficient sophisti-
cation, it should be possible for a compiler
to do as good a job as an assembler program-
mer vis-a-vis machine resource utilization.
There are two main virtues of these 1 6 bit
machines. In the first place, these machines
have complete 16 bit instruction repertoires
including hardware multiplication, division,
and long shifts. As well, the 1 6 bit processors
tend to have a good complement of addres-
sing modes such as indexing, stack opera-
tions, automatic increment and decrement
of pointers, and so on. (Here, as elsewhere in
this article, the descriptive terms may seem
fuzzy. Good complement does not admit of
a precise meaning. With real machines, one
usually loses clever addressing modes, for
plenty of general purpose registers, and one
must balance the benefits somehow. The
final judgment will usually be that of the
person writing the compiler.) With these
attributes, it is a fairly straightforward task
to construct a compiler for a high level
language such as Pascal.
8 and 16 Bit Hybrids
The current trend in 8 bit microprocessor
technology is towards a hybrid combination
8 and 16 bit machine. Essentially, these
processors are capable of 16 bit operations
while retaining 8 bit data paths throughout
the processor architecture. A prime example
of such a hybrid is the Motorola 6809,
which is due for formal product release later
this year. Table 1 gives a summary of the
basic addressing capabilities of the Motorola
6809, expressed in a hypothetical assembler
syntax which removes from the user the
burden of understanding all of the details of
the actual hardware addressing modes.
What advantages do these machines have
over their pure 8 bit predecessors? In partic-
ular, these machines now have at least one
accumulator for performing addition, sub-
traction, shifting and comparison operations
on 16 bit data. A second feature of these
machines is the 16 bit memory pointer,
which, combined with the ability to auto-
matically increment and decrement such
pointers, provides a very general memory
accessing capability. In addition, common
high level language features such as slack
frames and display pointers become quite
easy with the general index and slack
registers of the M6809. It is apparent that
the Motorola 6809 is particularly well-
endowed with addressing modes which
tend to facilitate code generation for high
level languages.
54 August 1978 © BYTE Publications Inc
Home-Computer Retailers
Get a new Sales Tool With
READY-TO-USE PRS
PROGRAMS ENCOURAGE
HOME-COMPUTER
SALES.
Enable retailers to offer home-
computer buyers an easy road to
computer usage. An answer to
the doubters who question
the use of a computer in the
home. These are thorough and exciting
applications. The elimination of the old
"tic-tac-toe" program.
NEW STANDARD OF
EXCELLENCE IN
DOCUMENTATION
SIMPLIFIES RETAILER'S
AND USER'S LIFE.
Retailers, you can now realize your dream
.to put a computer in every household.
Each program of PRS Corporation comes
with complete written documentation in
clear and easy-to-understand English. And
avoids esoteric technical language. Indeed,
retailers, you can now offer homeowners a
fluency at their fingertips without their
having a Ph.D. in Computer Sciences.
DISPLAY RACK
SPARKS COMPUTER
SALES.
Enables home-computer buyers to browse
through beautifully packaged cassette-
folders. Each prospect can study various
types of programs and become interested
in the advantages of computers.
Software
EXTENSIVE PROGRAM
CAPABILITIES MAKE
COMPUTERS DESIRABLE.
With "microti le," a new and revolutionary
datafile management program, users can:
• Manage any list of items
• Enter new data
• Edit information already on file
• Order items alphanumerically upwards
and downwards
• Sort by primary and secondary keys
• Search out an individual item or print
out entire list
• Total sums of columns
• Justify right and left margins of each
column
• Delete items
• Save and retrieve data with mass storage
media
PROGRAM APPLICATIONS
EXPAND COMPUTER USAGE:
Gives retailers opportunities to tell home-
computer prospects about the unending
list of home and personal usages. For ex-
ample, microfile manages:
Home inventory of furnishings •
Listing of musical tapes • Calen-
dar of activities • Vacation itiner-
aries • Checks by categories •
Home-upkeep tickler file • Family
historical dates • Health records
3 LEVELS OF
PROGRAM-USAGE.
Educational and games; homeowner
and business applications; sophisticated
monitors and programming tools.
PROGRAMS AVAILABLE
FOR THE MAJOR COMPUTER
BRANDS:
1. SOL from Processor Technology Corp.
and all computers with Solos/Cuter
monitor
2. TRS-80 from Radio Shack
3. The Apple II from Apple Computer Inc.
4. The Pet Computer from Commodore
5. The Sorcerer from Exidy Inc.
6. Standard set adaptable to other sys-
tems with Z-80, 8080A, 6502 micro-
processors
EXCLUSIVE SALES
TO RETAILER,
PRS Corporation offers only retailers the
sales opportunity for PRS software. With
no direct sales to end users. Each retailer is
provided with a beautiful informative rack
capable of holding up to 20 cassette -fold-
ers. Microfile (a Level 2 program) and
DDS II (a Level 3 program) the famous
Dynamic Debugging System— are now
available with additional programs coming
on a regular schedule.
CALL NOW FOR YOUR SPECIAL TRIAL DISCOUNT OFFER:
Call immediately (212) 787-1526 or 787-1527; or write today for details to: PRS-
THE PROGRAM OF THE MONTH Corporation, 257 Central Park West, New
York, N.Y. 10024.
Circle 306 on inquiry card.
BYTE August 1978
55
Listing 3: Motorola
MC6809 assembly code
for array Indexing program
fragment.
Consider again the array assignment
which the 6800 handled so dismally. The
Motorola 6809 code for the same construct
is given in listing 3. (Note that the syntax of
our assembler code is intended to be more or
less consistent amongst the examples, and
not necessarily that of the manufacturer's
assembler. It is in fact the syntax used by
our UNIX assemblers for these machines.)
Code for the PDP-11/45, considered to be a
good instruction set given in listing 4, is
included for comparison.
It is rather precipitous to deduce much
from this one example, although array
indexing does exercise many of the addressing
modes of a machine, and such assignment
statements can provide a check on the
register usage of a compiler. How a partic-
ular architecture fares with more general
arithmetic expressions and function and
procedure call, save, and return sequences
would provide further basis of comparison.
Indeed, other examples that we have tried
suggest that the results of this comparison
are typical.
Special Advantages of Pascal
We feel that the use of Pascal and a
competent compiler can lead to better
code in many cases on hybrid 8 and 16 bit
machines than can be achieved with many
other languages. Obviously, the best results
will require that Pascal be properly used —
that subranges be used where possible, for
example — and that these be declared to be
/•X'
points to top ol
' stack (display)
Ida
D. i(X)
/i
asl
B
rol
A
1*2
add
D, %a-2
1 -t-ofTset of 'a
lea
Y. D(X)
/ -tstack top
Ida
D.7(X)
/J
asl
B
rol
A
/•2
add
D. %b-2
/ +offset of 'b
Ida
D. D(X)
/ +stack top
sta
D, (Y)
Mi]:=b[j]
Total code: 20 bytes
/ r5 points to the "top" of the
Listing 4: DEC PDP-11
assembly code for array
indexing example.
1 stack frame
mov /(r5),rO
/J
asl rO
/*2
add r5,r0
/+ display pointer
mov i'(r5).rl
/i
asl rl
1*2
add r5,rl
/+ display pointer
mov />-2(r0),a
-20
i) /.a[i];<
Mil;
Total code: 22 bytes
as small as possible. A Pascal program can
contain a great deal of information that
allows even a straightforward compiler to
generate code which makes good use of the
available registers. The Pascal declarations of
listing 1 provide illustration for the following
discussion, and the code given is for the
Motorola 6809. Remember that the intent is
not to describe an implementation of Pascal.
The declaration of scalar and subrange
types essentially allows the declaration of
small integers and makes known the detailed
characteristics of variables of such types to
the compiler. Variables may thus be com-
pletely bounded, and the compiler can
compute upper and lower bounds on the
value of an expression.
In our example, variables of type short
or shortUnsigned may be loaded into the
8 bit accumulators of the 6809, and both
registers may be used simultaneously. A
variable may be recognized as unsigned if
there are no negative values in the subrange
to which it belongs. In the assignment state-
ment k := i+j; the variables /, and/, are both
in the range thru 10. The result is thus in
the range thru 20, and an 8 bit accumulator
may again be used to compute this result.
(All of this is particularly useful if array
indexing is also involved.)
The Pascal set type may be regarded as
providing a readable way to do "bit twid-
dling." A set is typically implemented as a
sequence of bits, one for each element of the
base type of the set. The variable s might
then be a byte in which the low order bit
corresponds to the element READY, the
next to BLOCKED, and so on. The sequence
of assignments might then be compiled as in
listing 5.
Pascal, of course, provides pointers,
record structures and arrays.
The use of pointers is strictly controlled:
arbitrary arithmetic operations on pointers
are not allowed. About the only things that
may be done with a pointer variable are:
indirect addressing, assigning another pointer
to it, or passing it to a procedure or function.
This structured use of pointers and indexing
results in a very stylized use of pointers in
the compiler's internal representation. This
in turn allows the compiler to detect the
places where double indexing may be used
to advantage rather easily, on machines like
the 6809 which have this feature.
Indexing of an array of records does
require multiplication of the index by the
width, in bytes, of the record. Often, this
may be accomplished by a shift. Of course,
this cannot always be done, since records
need not be a power of 2 in length, though
a compiler could arrange to round the size
of a record up to an appropriate boundary if
56 August 1978 © BYTE Publications Inc
Wondering which memory
is best for you?
bQ/e 2* offers the following products
to the S-100 market at the industry's
lowest prices:
8K Static Memory Board
This 8K board is available in two versions. The 8KS-B operates at 450ns for use with
8080 and 8080A microprocessor systems and Z-80 systemsoperating at 2MHz. The
8KS-Z operates at 250ns and is suitable for use with Z-80 systems operating at 4M Hz.
Both kits feature factory fresh 21 02's (low power on 8KS-B) and includes sockets for
all IC's. Support logic is low power Schottky to minimize power consumption. Address
and data lines are fully buffered and 4K bank addressing is DIP switch selectable.
Memory Protect/Unprotect, selectable wait states and battery backup are also
designed into the board. Circuit boards are solder masked and silk-screened for ease
of construction. These kits are the best memory value on the market! Available from
stock . . . 8KS-B $125 (assembled and tested add $25.00)
8KS-Z $145 (assembled and tested add $25.00)
16K Static Memory Board
Base 2 can now offer the same price/performance in a 1 6K static RAM as in its popular
8K RAM. This kit includes 8K bank addressing with 4K boundary address setting on
DIP switches. This low power unit provides on-board bank selection for unlimited
expansion. . . No MUX board required. Using highestquality boards and components
we expect this kit to be one of the most popular units on the market. Available in two
speed ranges, the 1 6KS-B operates at 450ns while the 1 6KS-Z operates at 250ns.
16KS-B $285 (assembled and tested add $25.00)
16KS-Z $325 (assembled and tested add $25.00)
Z-80 CPU Board
Our Z-80 card is also offered in two speed ranges. The CPZ-1 operates at 2MHz and
the CPZ-2 operates at 4MHz. These cards offer the maximum in versatility at
unbelievably low cost. A socket is included on the board for a 2708 EPROM which is
addressable to any 4K boundary above 32K. The power-on jump feature can be
selected to address any 4K boundary above 32 K or the on-board 2708. An On-board
run-stop flip-flop andoptional generation of Memory Write allows the board to run with
or without a front panel. The board can be selected to run in either the 8080 mode, to
take advantage of existing software, or in the Z-80 mode for maximum efficiency. For
use in existing systems, a wait state may be added to the M1 cycle, Memory request
cycle, on-board ROM cycle, input cycle and output cycle. DMA grant tri-states all
signals from the processor board. All this and more on toD quality PC boards, fully
socketed with fresh IC's. CPZ-1 $110 CPZ-2 $125
S-100 for Digital Group Systems
This kit offers, at long last, the ability to take advantage of S- 1 00 prod ucts within your
existing DigitalGroup mainframe. Once installed, up to four S-1 00 boards can be used
in addition to the existing boards in the D.G. system. The system includes an
"intelligent" mother board, ribbon cables to link existing D.G. CPU to the DGS-100
board and a power wiring harness. The DGS-1 00 is designed to fit in the 5-3/4" x 1 2"
empty areain the standard D.G. cabinet. It may seem expensive but there'sa lot here!
End your frustration! DGS-100 $295
bo/e
Circle 19 on inquiry card.
2
inc
Send for more details on these products. Get on our mailing listfor
information on more soon to be announced products at factory-direct
prices from BASE 2. Why pay more when you can get the best at
these prices???
P.O. Box 3548 • Fullerton, Calif. 92634
(714) 992-4344
CA residents add 6% tax
MC/BAC accepted • FOB — U.S. destination
BYTE August 1978 57
/ X is display pointer
/ equates are in octal
READY = 01
BLOCKED = 02
RUNNING = 04
SWAPIN = 010
SWAPOUT = 020
Ida
sta
/
Ida
anda
sta
/
Ida
ora
sta
/
Ida
anda
sta
A, SREADY+BLOCKED+RUNNING / immediate load
A, i(X)
A.i(X)
A, $![READY + RUNNING] /complement
A,j(X)
A, s(X)
A, SSWAPIN
A, s(X)
A, s(X)
A, $[SWAPIN + BLOCKED]
A, 5(X)
Listing 5: Set assignment code tor the Motorola MC6809 processor.
the difference were small. In any event,
provided the size of the record is no more
than eight bits (as an unsigned quantity), the
code for the multiplication could reasonably
be included in line.
We wondered how often division or multi-
plication is used in the UNIX system (an
operating system developed at Bell Labs),
and wrote a simple command file which
would compile each of the source programs
of the system and scan the resulting assem-
bler for mul and div instructions. The
number of multiplications was of interest in
light of the above discussion; the number of
divisions was collected as well, since these
would have to be interpreted by subroutine
on the 6809, and we wanted to know how
many occurred in critical code. The results
are shown in table 2.
Only one of the divide instructions occurs
in a routine that might be regarded as signi-
ficant, with respect to increasing system
overhead, were a subroutine called to do the
divide piecemeal; and that division was
performed at a low priority level. 31 of the
divide instructions in the device driver rou-
tines were in disk drivers, which had to
compute track and cylinder offsets. The
Section
Lines
of C Code
Number of
Multiplications
Number of
Divisions
UNIX Kernel
Device Drivers
6,013
8,640
4
62
9
41
Table 2: A search through a particular operating system to determine the
number of multiplications and divisions used. I his was done to determine
how important the speed of a multiplication and division routine would be to
a typical program.
multiplications in all cases were of small
amounts; it seems that (most likely by
accident) record structures used in the
kernel happened to be a power of 2 in length.
It would have been more instructive, perhaps,
to examine user programs, but in that case it
would have been more difficult to separate
multiplications written explicitly from those
created implicitly by array indexing.
A Pascal programmer may declare partic-
ular record or array types as packed, which
is a hint to the compiler that the program-
mer would prefer elements of the given type
to occupy as little space as possible even if
there is a cost in increased code to access
them. This leaves the unit of packing to the
compiler. For example, the types thing and
packedThing (sec listing I) describe packed
and unpacked records with similar fields (to
Pascal, these record types are not compatible
in any way). In a thing, both fieldl and
fie/c/2 will likely be bytes, but if a compiler
implements the notion packed completely,
then in a packedThing, field! will likely
occupy three bits, and field 2 five bits, ie:
they would share the same byte of storage.
Packing of records on microcomputers is
often much easier than on the larger proc-
essors, because microprocessors do not have
the alignment problems that plague compiler
writers on those machines.
Finally, as in many other languages, the
order of evaluation of expressions is left to
the implementor, but since side effects arc
not allowed, no legal Pascal program can
possibly be harmed by this. This has two
related effects; in arithmetic expressions,
the compiler may evaluate the operands in
the order that leads to the least amount of
code, and in Boolean expressions the left-
hand side of the logical operators and and or
need not be evaluated if the expressions on
the right determines the truth value of the
entire expression. Faster or smaller code will
usually result if a compiler takes advantage
of these properties.
Pascal: Problems?
We feel that there are a number of areas
where Pascal is likely to require expensive
mechanisms, and which would be inappro-
priate for a systems programming environ-
ment. One solution might be to implement
a subset of the language, leaving these hard
features aside, but in most cases, since the
expensive mechanisms are only invoked if
the programmer asks for them, it should
be sufficient to have the compiler avoid
including the associated run time procedures
when they are not requested. (This is worth
mentioning, if only because this rule is often
not followed.) We shall first mention those
58
August 1978COBYTE Publications Inc
' ;
18 >«
^A/ A
ST ^/fi
For Homeow
We have been in busin
for providing a quality prod
traffic will bear. Our softwa
• Versatile — as i
operation.
• Tutorial — as each program is serf, pi
through the program (most' l naye r ^e
COMPUTER
Businessmen, Engineers, Hobbyists, Doctors, Lawyers, Men and Women
*L,
is you
8afc(s
suuctions
V
as an example our PSD program not only
uced full size for
Vol.
c
Business & Per-
sonal Bookkeep'
ing Programs
Bond
Building
Compound
Cyclic
Decision 1
Decision 2
Depreciation
Efficient
Flow
Installment
Interest
Investments
(Mortgage "
Optimize
Order i*JC> V ..
Pert Tree
Rate
Returir J- t
Return T
Gam
contained right in their source code)
• Comprehensive
computes Power Spectral Densities but also includes FFT's,
Inverse-transforms, Windowing, Sliding Windows, simultaneous
FFT's variable data sizes, etc. and as a last word our software is:
• Readable — as alt of our pro
ease in readinq.ff^****^.
BrTTiiJ , ■« : r • v \w ft
• Virtually Machine Independent — these programs
in a subset of Dartmouth Basic but are not oriented for any cme
particular system. Just in case your Basic might not use one of/Our
particular system. Just in case your Basic might not use one of
our functions we have included an appendix in Volume V which
gives conversion algorithms for 1 9 different Basic's; that's right,
just look it up and make the substitution for your particular
version. If you would like to convert your favorite program in to
Fortran or APL or any other language, the appendix in Volume
will define the statements and their parameters as used in
programs
inter
Over 85% of our programs in the first five volumes will executi
8K Basic's with 16K of free user RAM. If you only have 4K Basic.
because of its lack of string functions only about 60% of our programs
in Volumes I through V wouldcij" useable, however they should
execute in only 8K of user RAM* V\;T" ■* jjfeT^? y*P^J
For those that have specific needs, we can talFoYan^SBf
or you or we can write one to fit your specific needs.
h'Qf j.
Scnedulet
Poac
'■'pin-
es & Pictures
Animals Four
Astronaut
Bagel
Bio Cycle
Cannons
Checkers
Craps
Dogfight
Golf
Judy
Line Up
Pony"*** ** .,.
Roulette
Sky Diver
Tank
Teach Me
t/Picturat ,
"A. Newman/^ /
J.F.K.
Linus
Ms. Santa
Ntxon
Noel Noel
Vol. II
Binomial
Crii-Sg.
Coeff
Confidence 1
Confidence 2
Correlations
Curve
Differences
Dual Plot
Exp-Distri
Least Squares
Paired
Plot
Plotpts
Polynomial Fit
Regression
Stat 1
Stat 2
T-Distribution
Unpaired
Variance 1
APPENDIX A
I
Conv.
Filter
Fit
Integration 1
Integration 2
Intensity
Lola
Macro
Max. Min.
Navaid
Optical
Planet
PSD
Rand 1
Rand 2
Solve
Sphere Tr.ian
Stars
Track
Triangle
Variable
tor
Vol. Ill
Billing
Inventory
Payroll
Risk
Schedule 2
Shipping
Stocks
SwifoYi /
Vol. IV
Bingo
Bonds
Bull
Enterprise
Football
Funds 1
Funds 2
Go-Moku
Jack
Life
Loans
Mazes
Poker
Popul
Profits
Qubic
Rates
Retire
Savings
SBA
' "Tic.-T.ac -Toe
(.,
Vol. V
Andy Cap
Baseball
Compare
Confid 10
Descrip
Differ
Engine
Fourier
Horse
egers
Intec
Logii
■' C
'eace y- c%
Policeman >
anta's Sleigh
'V
TO
T(j
I>
| V ^d fl er
Tq
vll
It '
Playboy &
Primes
Probal
Quadrac
Red Baron
Regression 2
Road Runner
Roulette
Santa
Stat 10
- $tat 1 1
Steel'*"-.. m
Top
Vary
Xmas
APPENDIX B
4>->
Mainfcfns/Cftmpany accounts and generates financial
Incluoes routines ivtv Pyrl, Inv, Depr, A/R, A/P.
B
Designed to challenge the average player, fairly comprehensiv*e.l/Q
Great fun for all, offers a unique opportunity for beginners in need of
an opponjaymP'^ "j — *S
system
For Doctors and Dentists alike, a complete patient billim
which also permits the maintaining of a patient history ri
'ordprocessing for lawyers, publishers, writers, etc. Write, store
nd change from rough draft to final copy in a variety gf formats.
A*
7.
: -or meor^,,
J8» '
Iron*
form
;&&V'*s ; ' : $24.95
okkeeping
ames
Picture
ttn»
Vol. Ill — $39.95
•nttf
gM/fa, !*»**•*• Vol. V — $„9.95
Experimenter's
Advanced Business
Billing, Inventory
Investments
Payroll
Program
trW»P° rt * W ' \ Ja-
Vol. VII — $39.95 Vol. VIII — $19.!
Professional Homeowner's
rograms Programs
-pports.
oo
• ? 4o..
J-6
Vol. II — $24.95
-' JM 'I . •■*■ c I* '
Math/Engineering
Plotting/Statistics
asic Stateme
\
Taxpayers return, itemized deductions or standard
Reconciles bank statement
Balances your checkbook
Computes real cost on bank financed items; cars, boats, etc.
Computes depreciation, 4 methods, any time period
General Purpos
ol. VI —$49.95
Mini-Ledge
tion*
7ot»» c ° ntr
2A
23V_i£.
t"* cr
25
uaster charge
state 1
P.O. Box 490099-B, Key Biscayne, FL 33149
J Phone orders call 800-327-6543
Information — (305) 361-1153
Add $1.60 per volume handling, all domestic shipments sent U.P.S.
except APO and P.O. FJbx which go parcel post. Foreign orders
add $8.00/volume for air shipment and make payable
**;
volume handlin
d P.O. Box w
add $8.00/volume for air shipment and r
. or from N° e \ ' r 1# ro) • \-
U.S.
or
Our Sof
26 <«*
AVAILABLE AT MOST COM I
.mount on »«• /
Master Charge and Bank AmerL
....ft »o*» ""TT n Wni^l^^-rXJv^n^SSl^-
reproduced r
BankAmericaro
mm
•ver »»
>yrighted and may
ipted.
'TE August 1978 59
^r^
constructs which are expensive, but which
appear only by programmer request.
The semantics of Pascal's file variables,
and the input/output (10) system in general
tend to reflect characteristics of a batch
environment, with a restricted character set.
The basic 10 procedures are badly designed
for an interactive terminal. The read and
write procedures are fairly expensive to
implement, since they are extremely general
and all encompassing.
On machines like the 6809 which lack a
divide instruction of any sort (let alone a
1 6 bit one), division will be done by calling a
run time support routine. Only if the pro-
grammer explicitly writes cither a divide, or
modulus operation, will the call be gener-
ated. Floating point numbers will be inter-
preted, as usual.
Pascal allows procedures and functions to
be defined inside other procedures and func-
tions. This requires either a display, which
must be copied, or a system of pointers by
which a routine may access the variables
owned by routines in an outer scope. (The
latter is the most likely choice.)
Strings, arrays, records and large sets (if
implemented) may all be assigned or passed
TERMINALS FROM TRANSNET
PURCHASE
12-24 MONTH FULL OWNERSHIP PLAN
36 MONTH LEASE PLAN
PURCHASE PER MONTH
DESCRIPTION PRICE 12 MOS 24 MOS 36 MOS
DECwriterll $1,495 $145 $ 75 $ 52
DECwriter III 2,895 275 145 99
DECprinterl 2,495 240 125 86
VT52 DECscope 1,695 162 85 59
VT55 DECgraphic CRT 2,695 260 135 94
ADM 3A CRT 875 84 45 30
HAZELTINE 1500 CRT. 1,295 124 66 45
Tl 745 Portable 1,875 175 94 65
Tl 765 Bubble Mem. . . . 2,995 285 152 99
Tl 810 RO Printer 1,895 181 97 66
Data Products 2230 . . . 7,900 725 395 275
QUME, Ltr. Qual. KSR . 3,195 306 163 112
QUME, Ltr. Qual. RO .. 2,795 268 143 98
DAT AM ATE Mini Floppy 1,750 167 89 61
FULL OWNERSHIP AFTER 12 OR 24 MONTHS
10% PURCHASE OPTION AFTER 36 MONTHS
ACCESSORIES AND PERIPHERAL EQUIPMENT
ACOUSTIC COUPLERS • MODEMS • THERMAL PAPER
RIBBONS • INTERFACE MODULES • FLOPPY DISK UNITS
PROMPT DELIVERY • EFFICIENT SERVICE
X
TransNet Cor pora tion
2005 ROUTE 22, UNION, N.J. 07083
201-688-7800
as parameters to routines. These operations
require block copies, but only if the opera-
tions appear in the source program. Copying
of actual parameters may be avoided, of
course, by declaring the matching formal
parameters as var parameters.
The remaining points concern some philo-
sophical concerns about Pascal and its
implementation. (Input and output might
also be considered in this class.)
Philosophy
It has been observed that much of the
checking done at run time in other languages
may be done at compile time in Pascal. This
is not always so, and run time checks are
required on assignments of a variable from a
larger subrange to a variable in a smaller
subrange of a given type, or on similar use
in array indexing, and pointers must always
be checked to ensure that they are not nil.
It might be argued that run time checks
might not be done at all. It is better to
arrange for them to be turned on and off, as
required, in different sections of code.
The Pascal Report (see references) does
not put boundaries on the number of ele-
ments in the base type of a set type, but it
does say that an implemented will likely
choose the word length of a given computer
as that limit. Otherwise, routines are required
to perform various Boolean operations on
large bit strings. Unfortunately, a great many
Pascal programs in existence, most notably
those for the CDC 6600, assume that it is
possible to dclcare or use a set of char, as in:
if c in [ 'a', ,'z'] then
{ c is a letter }
where c is declared as a char. The CDC
Pascal compiler restricts the number of
elements in the base type of a set to about
the number of bits in a word (58), but the
CDC character set is small enough that it
(nearly) fits within a set. On a microcom-
puter with the ASCII character set even 16
bits is clearly insufficient, and larger sets
may need to be implemented.
There is no method provided to initialize
variables in their declaration. This is of
consequence when one wishes to create a
table with values that remain constant
throughout the life of the program (eg: a
translation table). The only way to do this in
standard Pascal is to write a sequence of
assignment statements. This will typically
result in several bytes of code for each
assignment, as well as forcing two copies of
each data value in the table. On a large
machine like the CDC 6600, this may be of
60
August 1978IBBYTE Publications Inc
Circle 376 on inquiry card.
little consequence, but on a microcomputer
with little core, this is a distinct disadvantage.
Of course, various implementations of Pascal
have provided a means to do this sort of
thing efficiently, but this results in a porta-
bility problem because each implementor
tends to have slightly different rules about
where and how these initializations may be
accomplished.
Conclusions
For languages like Pascal, compilation is
the preferred method of implementation on
hybrid 8 and 16 bit microprocessors. The
object code size on these machines for
common constructs in these languages seems
lo compare quite favorably with that for
larger processors like the PDP-11 or the
Honeywell 66/60. We illustrated this with a
very simple array operation; the reader can
try other operations.
When choosing a programming language,
one typically considers not only the ease or
difficulty of implementation and the effi-
ciency of the compiled code, but stylistic
qualities as well. For example, wc have
found the C language a pleasant and effective
language for developing programs, but it
does not, of course, follow that everyone
else would. The same holds true for Pascal.
We merely note that the Pascal is interesting,
in that Pascal programs may be so written as
to allow a compiler to compile code which
makes efficient use of 8 bit accumulators on
machines that have them, and that amongst
the other major high level languages this is
an unusual property (PL/I is a likely excep-
tion). Whatever the language used, we hope
to see the day when on microcomputer
systems, as on UNIX, the use of assembly
language for a program of any size is greeted
with surprise, shock, depairs, dismay and
outright hostility."
REFERENCES
1. Jensen, K and Wirth, N, Pascal User Manual
and Report, Springer-Verlag, New York 1975.
2. Bell, JR, "Threaded Code," CACM, volume
16, number 6, June 1973, pages 370 thru
372.
3. Dewer, RBK, "Indirect Threaded Code,"
CACM, volume 18, number 6, June 1975,
pages 330 thru 331 .
4. Aho, AV, and Ullman, JD, Principles of Com-
piler Construction, Addison-Wesley, Don
Mills, Ontario 1977.
5. 990 Computer Family Systems Handbook ,
manual number 945250-9701, Texas Instru-
ments, Austin TX 1976.
6. LSI1 1 PDP1 1/03 Processor Handbook, Digital
Equipment Corp, Maynard MA 1975.
7. M6800 Microprocessor Programming Manual,
Motorola Semiconductor Products, Phoenix
AZ 1975.
8. Kernighan, BW, and Ritchie, DM, The C Pro-
programming Language, Prentice-Hall, Engle-
wood Cliffs l\IJ 1978.
9. Thompson, KL, and Ritchie, DM, "The UNIX
Time-Sharing System," CACM, volume 17,
number 7, July 1974, pages 365 thru 375.
10. Honeywell 66/60 Macro Assembly Program,
Honeywell Information Systems, Phoenix AZ
1972.
11. Wiles, et al, "Compatibility Cures Growing
Pains of Microcomputer Family," Electronics,
2 February 1978.
12. M6809 Advanced Microprocessor, Motorola,
Austin TX.
^■iiiiiiiiiiiiiiiiiiiiiiiiiiitiiiiiitiiiiiiiiiiiiiiiiiiiiiiiiiMiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiifiiiiiiiiiiiMiiiiirifriiiiiiiifitiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiifiiiu^
Infinite Programming Possibilities
j Microcomputer Handbook by Charles J Sippl defines the
■ present state of computer technology very well, con-
■ centrating on both hardware and software. Lucid and
| complete glossaries are combined with a variety of
■ illustrations. Topics covered include: microcom-
• puters-where they are, what they are doing, and
; what is next; kits; distributed intelligence; and
; why the new systems are easier to use. The
j book was written by a computer industry lec-
turer and consultant and is highly recom-
i mended for the intelligent lay person as well as
| for professionals and experimenters. The glos-
I saries alone are worth the price of the book—
j don't miss this one! This hardcover reference is
BITS
only $19.95.
Top-down Structured Programming Techniques. What is S3
structured programming? Clement L McGowan and =
John R Kelly answer this question in their lively, 3
well-written book, Top-down Structured Program- 3
ming Techniques. Discover the three basic types 3
of flowcharts and how to optimize them. One 3
section deals with the best ways to manage pro- ss
grams being written by a team of programmers. =
An important feature of this book is its univer- 3
sality: practically any program in any language 3
can be improved by using the ideas described 8
in it. 288 pp. $1 5.95 hardcover.
For convenience in ordering, please use the order 3
form on page 83, writing in the books you want.
The Microcomputer Bookstore
CALL YOUR BANK CARD ORDERS
TOLL FREE 1-800-258-5477.
25 Route 101 West, Peterborough NH 03458
?Ti iiiiiiitiiiif iifiiiiiiiiiiifiiiifiiiiiiiiiitfitiiiiiiitjiiiitiriiiiiiiiiii mil ii n» til tiiiiitiiifin iifiiiifiiiiiiiitiiiiiiiiiiiiiiiititiiiitiifiififiiiiiiiirifiiiiriititiififii ir^
Circle 29 on inquiry card.
August 1978 © BYTE Publications Inc 61
LEARN TO
PROGRAM
mmroco>ii»iti:rs
And at an affordable price. The
Modu-Learn™ home study course
from Logical Services.
Now you can learn microcomputer
programming in ten comprehensible
lessons. At home. In your own time. At
your own pace.
You learn to solve complex problems
by breaking them down into easily
programmed modules. Prepared by
professional design engineers, the
Modu-Learn™ course presents sys-
tematic software design techniques,
structured program design, and prac-
tical examples from real 8080A
fhicro-computer applications. All in a
modular^sequence of 10 lessons . . .
more than 500 pages, bound into one
practical notebook for easy reference.
You get diverse examples, problems,
and solutions. With thorough back-
ground material on micro-computer
architecture, hardware/software trade-
offs, and useful reference tables. All
for only $49.95.
For $49.95 you learn design tech-
niques that make software work for
you. Modu-Learn™ starts with the
basics. Our problem-solution ap-
proach enables you to "graduate" as
a programmer.
Circle the reader service number be-
low to receive our free descriptive
brochure and course outline.
Use your Master Charge or VISA
card to order today. Call Pat at (408]
245-8855.
Circle 215 on inquiry card.
P.O. Box 60968
Sunnyvale, CA 94088
408-245-8855
BYTE's Bugs
The Price Is Wrong
In the book review of The Elements
of Programming Style, which appeared
in May 1978 BYTE, page 161, the price
of the book should have been $5.95,
not $2.65. Thanks go to P | Plauger
for notifying us of this error."
Transposition Bug
We apologize for any inconvenience to
readers' internal interpreters caused by
the slight deviation in scanning between
pages 164 and 165 in the June 1978
issue. The two columns of text on page
165 were inadvertently reversed. Trans-
position ol these two columns will
restore the correct syntactic order of the
text (see below)."
Still Further Thoughts
On page 122 of the |une 1978
BYTE there appeared a Language Forum
item called "An APL Interpreter:
Further Thoughts." In paragraph 2 Tom
Brightman remarks that most reductions
are monadic. David Eisenstein con-
tacted us to state that most reductions
are dyadic and research into several APL
books verified this.
I feel that the problem here is one of
interpretation. If a reduction function,
such as +/, is considered to be one
operation, then the operation is mon-
adic. The one operand is to the right of
the function and is usually a vector.
However, the reduction function is
usually defined to be only the left slash
symbol. This means that the reduction
function is dyadic. The righthand
operand would usually be mi array and
the lefthand operand would be some
operator such as + or x. This is the form
that texts seem to use. . .RGAC"
f
System Cle
When a CIRI./W followed lis .1 Ck\u is
delected in the Control Check $ecUon, .i
jump is made In INITiali/c and .ill svslem
paumeters arc initialized. I he -.Liecn is
cleared ,md the cursor is moved in t riL- upper
left-hand earner.
System Cleat is designed to be accessed
by pressing CTR LAV and then Clcar.to avoid
accidental use. Ii is, however, occasionally
handy to be able to reinitialize the entire
program.
Clear Screen and Home Cursor
When unly the Clear ke\ is pressed, the
program jumps tu CLEAR. This clears the
screen and returns the cursor to the upper
left-hand corner. Memory Status words aie
unchanged-
Home Cursor
When a CTRL/X is detected in the
Control Check section, the program jumps
to Home, which returns the cursor to the
upper left-hand corner but dues not affect
the screen contents or the memory status
words,
Escape
When the escape ke> (ESC) is pressed, it
is detected by the Control Check section and
a jump is made lo hexadecimal memory
addiess 345 wheie the program receives
instructions for exit from GRAPH (see
Program Function and Use).
Addressing and Memory Requirements
In its present assembly, GRAPH resides
in hexadecimal memory locations 000 thru
3FFF and is designed to drive a VDM-I
addressed at hexadecimal CC00. VDM-1
status port (to reset scrolling) is addressed
ai hexadecimal C8.
In addition, six 1 K byte memory sectors
are set aside for the STORE and RECALL
functions (see table 3).
A keyboard inputs status information to
10 port 00 (data present * bit 6 set) and
data to 10 port 01."
H.«id«cimil
Location* ol Biom
.Addrati in GRAPH
F 7*9 K
CCTv
239. 263 1101
A 300 bps cassette of GRAPH
in Kansas
Cilv, BYTE or Cuter lormats with
a CUTEH
header is available tor $5 (cash oi mo
iev order)
from UNB Audio Visual Servic
bs. UNB.
Fredeficton NB CANADA E3B 5A3
6 y *v CI
CSTART )
il the program is in the vertical write mode).
It then adds the value 80 to the accumulator
and deposits the result back into 3F7. This
has the effect of alternately loading that
location with hexadecimal 00 or 80 every
lime ibis routine is entered. Thus, one stroke
of the appropriate key (CTRL/0) puts you
in the Vertical Write mode, and another
stroke takes you out of that mode. Opera-
tion then jumps back to STATIN in the
Driver.
Corsor (On/Off)
This operation works exactly the same as
Vertical Write by alternately loading hexa-
decimal location 3I'B with hexadecimal 00
or 80.
Cursor Write/Don't Write
Cursor write/don't write works exactly (ike
Vertical Write, alternately loading location
hexadecimal 3F6 with hexadecimal 00 or 80.
Next Store
When a CTRL/W and a number from 1 lo
n arc detected (see Control Check Section),
the Next Store routine is entered. This
routine is actually only a series of compari-
sons in the Control Check Section which
compare the input character with several
ASCII hexadecimal values. For example,
after CTRL/W and a numeral 1 are entered
from the keyboard, the data input to the
computer is hexadecimal 31. In this case a
CPI 31 instruction would route the program
lo instructions thai would load status word
hexadecimal memory location 3F8 with
hexadecimal 00, and when 3F8 is checked
by the next STORE operation, it would
siore page 1 in the first memory sector.
Entering a 3 would be detected by a CPI 33,
which would load 3F8 with hexadecimal 02
and set up the next STORE operation for
page 3. I
270 (201
3: Six 1 K byte
y sectors which are
iside for the STORE
LL functions.
>*Bd«cimal
itionof End
ill in GRAPH
C END )
SERVICES INCORPORATED
62 Aubiisi 1978 9 BYTE Publications Inc
At last.
Finally, the macro maker of computer
printers has gone micro. With a high-speed,
desk-top, non-impact printer complete with
parallel interface (Model PI) that' s perfect for
the home, hobby and small business user. A
complete 80-column printer for less than lii^
The new Centronics microprinter is
big on performance. It prints clean, clear dot
matrix characters at a rate of 150 lines per
minute. Yet it's quiet, compact, comes fully
warranted and is backed by Centronics'
worldwide service. It's even available in a
serial interface version (Model SI) for
remote applications.
Of course, buying your small systems
printer from the industry's leading producer
of printers is simply a better buy. You get the
security, support and systems flexibility only
Centronics can bring. Plus the targeted tech-
nology that brings out the best in any computer.
So when you think small printers, think
big. Think Centronics. For more information,
just clip and mail the coupon below.
I~"
Centronics Data Computer Corp.
Hudson, NH 03051
Gentlemen : Tell me more about your new
microprinters.
Name.
Title _
"~l
Company .
Address
Town
State
.Zip.
Phone
_B878__|
CERTRDniCS PRH1TER5
Simply Better
Circle 50 on inquiry card.
BYTE Augusl 1978 63
The Number Crunching
Processor
Peter Nelson
68 Seaver St
Wellesley MA 02181
National Semiconductor Corporation's
MM57109 microprocessor is designed speci-
fically for numeric processing. Called "The
Number Cruncher" in their advertising, the
MM 571 09 has an instruction set that in-
cludes floating decimal arithmetic, logarith-
mic and trigonometric functions and other
sophisticated features. Although it can be
used as a stand alone device with read
only and programmable memory, or as the
"brain" of a smart instrument, most hobby-
ists will probably want to use it as a
peripheral processor where it will save both
money and memory space.
The MM57109 requires a 9 V power
supply which can be configured as +5 V and
— 4 V for easier TTL interface. It also re-
quires a single phase 5 V clock of about a
I, /Dl
I 2 /D2 —
I 3 /D3 —
4
I 4 /D4
5
I 5 /ADR
6
SYNC
OSC —
6
ISEL
9
HOLD
IO
R/W
1 1
POR
RDY^
13
ERROR
14
F2
TOP VIEW
vss
VDD
5V
-4V
CLOCK
GEN
l INTERNAL CLOCKS
INITIALIZATION
I 5 /ADR-
14 /D4-
I 3 /D3-
I 2 /D2 -
I i /Dl -
TTTt
ARITHMETIC
UNIT
MICROPROGRAM
STORAGE ROM
CONTROL
SIGNALS
4 BIT DIGIT DATA
■ HOLD
• RDY
. BR
. ISEL
• R/W
, DAS
. Fl
• F2
. ERROR
8 DIGIT
\ MANTISSA
REGISTER
FILE
■ DAI (LEAST)
■ DA 2
■ DA3
• DA4 (MOST1
■ DOI (LEAST)
•D02
. D03
. D04 (MOST)
Figure 1 : Pin assigments for the dual in line packaged MM 5701 and a functional block diagram of the processor. Reproduced
courtesy of National Semiconductor Corporation.
64
August 1978 © BYTE Publications Inc
400 kHz frequency. This is internally
divided down to a 100 kHz SYNC signal
which forms the basic time period of the
processor. National calls this 10 /is period a
microcycle. All instruction times are ex-
pressed in microcycles.
A pinout and block diagram are shown in
figure 1. The MM57109 receives instructions
and data via input lines I -| thru lg. Timing of
an instruction or data fetch operation is
shown in figure 2. Note that the RDY
output goes high to signal that input is
required, l-j thru I5 may change only when
the RDY line is high. Processing begins when
it returns to a logic "0," 8 microcycles later.
The MM57109 can be halted when the RDY
line is high by applying a logic "1" to the
HOLD input before or at the rising edge of
RDY. If HOLD goes high after RDY does,
the processor will not stop until the next
RDY pulse. Stopping the processor can
allow more time for an external device to
prepare data or an instruction. The
MM57109 cannot be halted during execu-
tion of an instruction. For 2 word opera-
tions, the RDY line will go high twice, once
for each fetch. The ISEL output is used
during such operations to indicate when the
processor is expecting an instruction; it will
go low when data is expected. This is useful
if the data and instructions are coming from
two different sources.
DO-] thru DO4 are used to output data
during an OUT operation. The number of
digits and format depend on parameters set
by software, especially the SMDC and
TOGM instructions. The RW output is
strobed low, once for each digit. Note in
figure 3 that the MM57109 issues a second
RDY pulse during the OUT operation. This
is for external memory control and can be
ignored if the processor is being used as a
microcomputer peripheral.
The digit address lines, DA-| thru DA4,
and the digit address strobe, DAS, are used
to provide address information when the
MM57109 is configured as a stand alone
processor with its own memory. Typically,
the digit address lines would provide the
lower four bits of address with the upper
four bits coming from an external read only
memory.
Reference Source:
The source of the information used to design this circuit for the
MM 57 109 is the National Semiconductor publication, MM 57 109
MOS/LSI Number Oriented Microprocessor, copyright 1977 by Nation-
al Semiconductor Corporation, published in March 1977. The publi-
cation number of this 24 page booklet is IM-B50M37. National Semi-
conductor Corporation is located at 2900 Semiconductor Dr, Santa
Clara CA 95051, and the MM57109 is available from electronics distri-
butors who handle National Semiconductor's product line.
~-8li CYCLES
INSTRUCTION
IS EXECUTED
HOLD
Ii-T«
l— DATA MAY CHANGE,
NEW OPCODE MAY BE INTRODUCED
Figure 2: Instruction fetch and hold timing diagram. The RDY line goes high
when the data is ready. If the HOLD line is also high RDY will remain high.
When the HOLD line goes low, the RDY line will follow and the instruction
will be executed. Adapted from figure 8c on page 10 of National Semicon-
ductor Corporation's documentation, IM-B50M37 (March 1977).
r
SECOND RDY PULSE
RDY FOR
^NEXT IN-
j STRUCTION
OUT CODE
11-16
)C_>
DON T CARE
<z
ZI_XZ3C^
Figure 3: Timing diagram of an OUT instruction. The second RDY pulse can
be ignored if the processor is being used as a peripheral to a computer.
August 1978 © BYTE Publications Inc 65
Table 1: The 70 command
instruction set for the
MM 571 09. The commands
are broken into seven
different classes: digit
entry, data moves, math
functions, clearing opera-
tions, branch functions,
10 and mode control.
Reproduced courtesy of
National Semiconductor
Corporation.
The POR input is used to reset the
processor after power is first applied. Fol-
lowing a 2 microcycle, or greater, positive
pulse on this line, the MM57109 will issue
three RDY signals. The first two should be
ignored; processing begins following the
third one.
The remaining outputs are all controlled
by software. F-| and F2 may be set or pulsed
by the SF or PF instructions. The ERROR
line indicates an illegal operation or overflow
and BR responds to a jump or branch
operation with a pulse to "0."
Instruction Set
Table 1 details the MM57109's 70
instructions. This number is achieved with
only a 6 bit word through the use of the
INV instruction, octal 40, which gives
double service to some of the other op
codes. The instruction set provides a com-
plete set of scientific calculator operations in
CLASS
SUBCLASS
MNEMONIC*
OCTAL OP
CODE
FULL NAME
DESCRIPTION
Digit
00
Mantissa or exponent digits. On first digit (d)
Entry
1
01
1
the following occurs: Z -» T
2
02
2
Y -*, Z
3
03
3
X -> Y
4
04
4
d -» X
5
05
5
See description of number entry on page 11.
6
06
6
7
07
7
8
10
a
9
11
9
DP
12
Decimal Point
Digits that follow will be mantissa fraction.
EE
13
Enter Exponent
Digits that follow will be exponent.
CS
14
Change Sign
Change sign of exponent or mantissa.
Xm = X mantissa
Xe - X exponent
CS causes -Xm ->■ Xm or -Xe ■* Xe depending
on whether or not an EE instruction was
executed after last number entry initiation.
PI
15
Constant n
3.1415927 -» X, stack not pushed.
EN
41
Enter
Terminates digit entry and pushes the stack.
The argument entered will be in X and Y.
Z-*T
Y-*Z
X->Y
NOP
77
No Operation
Do nothing instruction that will terminate digit
entry.
HALT
17
Halt
External hardware detects HALT op code and
generates HOLD = 1. Processor waits for HOLD
= before continuing. HALT acts as a NOP and
may be inserted between digit entry instructions
since it does not terminate digit entry.
Move
ROLL
43
Roll
Roll Stack.
T Y
v 2 y
POP
56
Pop
Pop Stack.
Y-X
Z->Y
T-»Z
0->-T
XEY
60
X exchange Y
Exchange X and Y.
X«-i-Y
XEM
33
X exchange M
Exchange X with memory.
X<->M
MS
34
Memory Store
Store X in Memory.
X-»M
MR
35
Memory Recall
Recall Memory into X.
M-X
LSH
36
Left Shift Xm
X mantissa is left shifted while leaving decimal
point in same position. Former most significant
digit is saved in link digit. Least significant digit
is zero.
RSH
37
Right Shift Xm
X mantissa is right shifted while leaving decimal
point in same position. Link digit, which is
normally zero except after a left shift, is shifted
into the most significant digit. Least significant
digit is lost.
66
August 1978©BYTE Publications Inc
an easy to use keyboard entry format. The
processor uses reverse Polish notation, RPN,
which is the same system used on the
Hewlett-Packard calculators. This method
can obviate the need for parentheses in
many cases.
There is a complete set of conditional
branch test operations that may be quite
useful if a programmable calculator or higher
level language is being implemented. The BR
output will pulse low if the condition being
tested is true.
Among the numerous digit entry and 10
operations are three different ways to input
digits: AIN, IN and "digit as instruction"
number entry, octal 00-1 I. This latter meth-
od is most similar to calculator number
entry and is the input system assumed for
the interface in this article.
The MM57109 offers two conventional
CLASS
SUBCLASS
MNEMONIC*
OCTAL OP
CODE
FULL NAME
DESCRIPTION
Math
F (X,Y)
+
71
Plus
Add X to Y. X + Y - X. On +, -, x, / and YX
instructions, stack is popped as follows:
Z->Y
T->Z
0->T
Former X, Y are lost.
-
72
Minus
Subtract X from Y. Y - X -> X
X
73
Times
Multiply X times Y. Yx X-X
/
74
Divide
Divide Xinto Y. VrX->X
YX
70
Yto X
Raise Y to X power. Y x -* X
F (X,M)
INV+*
40,71
Memory Plus
Add X to memory. M + X -» M
On INV +, -, x, and / instructions, X, Y, Z,
and T are unchanged.
INV-'
40,72
Memory Minus
Subtract X from memory. M - X -+ M
INVx*
40,73
Memory Times
Multiply X times memory. M x X -» M
INV/"
40, 74
Memory Divide
Divide X into memory. M * X -> M
F (X) Math
1/X
67
One Divided by X
1 * X -+ X. On all F (X) math instructions Y, Z,
T and M are unchanged and previous X is lost.
SORT
64
Square Root
\/X-» X
SQ
63
Square
X2-X
10X
62
Ten to X
10 x -~ X
EX
61
EtoX
e x ^X
LN
65
Natural log of X
In X- X
LOG
66
Base 10 log of X
log X - X
F (X) Trig
SIN
44
Sine X
SIN(X)~X. On all F(X] trig functions, Y, Z, T,
and M are unchanged and the previous X is lost.
cos
45
Cosine X
COS(X)-X
TAN
46
Tangent X
TAN(X)->X
INV SIN*
40,44
Inverse sine X
SIN _1 (X]^X
INV COS*
40,45
Inverse cosine X
COS _1 (X)^ X
INV TAN*
40,46
Inverse tan X
TAN" 1 (X)-*X
DTR
55
Degrees to radians
Convert X from degrees to radians.
RTD
54
Radians to degrees
Convert X from radians to degrees.
Clear
MCLR
57
Master Clear
Clear all internal registers and memory; initialize
I/O control signals, MDC ■ 8, MODE » floating
point. (See initialization,)
ECLR
53
Error flag clear
O — Error flag
Branch
Test
JMP*
25
Jump
Unconditional branch to address specified by
second instruction word. On all branch instruc-
tions, second word contains branch address to
be loaded into external PC.
TJC
20
Test jump
condition
Branch to address specified by second instruc-
tion word if JC d6) is true (=1). Otherwise,
skip over second word.
TERR*
24
Test error
Branch to address specified by second instruc-
tion word if error flag is true (=1). Otherwise,
skip over second word. May be used for
detecting specific errors as opposed to using the
automatic error recovery scheme dealt with in
the section on Error Control.
TX = 0*
21
Test X =
Branch to address specified by second instruc-
tion word if X ■ 0. Otherwise, skip over second
word.
TXF*
23
Test IXK 1
Branch to address specified by second instruc-
tion word if | X | < 1, Otherwise, skip over
second word. (i.e. branch if X is a fraction.)
TXLTO*
22
Test X <
Branch to address specified by second instruc-
tion word if X < 0. Otherwise, skip over second
word.
August 1978 © BYTE Publications Inc 67
microprocessor operations, HALT and NOP,
but with a difference. HALT, by itself, only
acts as a NOP; it does not stop the machine.
It is designed to be detected with external
hardware that will generate a HOLD signal
to halt the processor.
The number of microcycles required to
execute an instruction may vary from a few
hundred to many thousands as shown in
table 2. Speaking generally, the complex
operations such as trigonometric and loga-
rithmic functions take the greatest time. As
a bench mark, the floating point addition
time is 2200 microcycles, or 22 ms. However
the floating point add time might not make
a very reliable benchmark since it varies over
a wide range (22 ms, typical, to 66 ms, worst
case) depending on the numbers involved.
Figure 4 shows how easy it is to interface
the MM57109 to your system. Most of the
required pins are TTL compatible. The POR
and HOLD inputs, however, must have a
Table 7, continued:
OCTAL OP
CLASS
SUBCLASS
MNEMONIC*
CODE
FULL NAME
DESCRIPTION
Branch
Count
IBNZ
31
Increment memory
and branch if
M*0
M + 1 -* M. If M = 0, skip second instruction
word. Otherwise, branch to address specified
by second instruction word.
DBNZ
32
Decrement
memory and
branch if M ^
M - 1 -* M. If M = 0, skip second instruction
word. Otherwise, branch to address specified
by second instruction word.
I/O
Multi-digit
IN*
27
Multidigit
input to X
The processor supplies a 4-bit digit address
(DA4— DAI) accompanied by a digit address
strobe (DAS) for each digit to be input. The
high order address for the number to be input
would typically come from the second instruc-
tion word. The digit is input on D4-D1, using
ISEL = to select digit data instead of in-
structions. The number of digits to be input
depends on the calculation mode (scientific
notation or floating point) and the mantissa
digit count (See Data Formats and Instruction
Timing). Data to be input is stored in X and the
stack is pushed (X -*• Y -* Z -*■ T). At the con-
clusion of the input, DA4-DA1 ■ 0.
OUT'
26
Multidigit output
from X
Addressing and number of digits is identical to
IN instruction. Each time a new digit address is
supplied, the processor places the digit to be
output on D04-D01 and pulses the R/W line
active low. At the conclusion of output, D04—
D01 = 0andDA4-DA1 = 0.
I/O
Single-digit
AIN
16
Asynchronous
Input
A single digit is read into the processor on D4—
D1. ISEL ■ is used by external hardware to
select the digit instead of instruction. It will not
read the digit until AD~R = (ISEL = selects
ADR instead of I5), indicating data valid. F2 is
pulsed active low to acknowledge data just read.
I/O
Flags
SF1
47
Set Flag 1
Set F1 high, i.e. F1 =1.
PF1
50
Pulse Flag 1
F1 is pulsed active high. If F1 is already high,
this results in it being set low.
SF2
51
Set Flag 2
Set F2 high, i.e. F2 = 1.
PF2
52
Pulse Flag 2
F2 is pulsed active high. If F2 is already high,
this results in it being set low.
PRW1
75
Pulse R/W 1
Generates R/W active low pulse which may be
used as a strobe or to clock extra instruction
bits into a flip-flop or register.
PRW2
76
Pulse R/W 2
Identical to PRW1 instruction. Advantage may
be taken of the fact that the last 2 bits of the
PRW1 op code are 10 and the last 2 bits of the
PRW2op code are 01. Either of these bits can be
clocked into a flip-flop using the R/W pulse.
Mode
TOGM
42
Toggle Mode
Change mode from floating point to scientific
Control
notation or vice-versa, depending on present
mode. The mode affects only the IN and OUT
instructions. Internal calculations are always in
8-digit scientific notation.
SMDC*
30
Set Mantissa
Digit Count
Mantissa digit count is set to the contents of the
second instruction word (=1 to 8).
INV
40
Inverse Mode
Set inverse mode for trig or memory function
instruction thatwill immediately follow. Inverse
mode is for next instruction only.
68
August 1978 ©BYTE Publications Inc
JgfctfiJJQ
M s J*^[jiQ §
MODEL CC-8
$185.00 (4800 Baud)
$195.00 (9600 Baud and 220V/50 Hz)
9600 BAUD CASSETTE RECORDER
An ASYNCHRONOUS NRZ type Recorder with remote motor start/stop. Error rate
10 8 at 4800 BAUD. Can be used from 110 to 9600 BAUD into a UART - no clocking
required. This is not an audio recorder. It takes RS232 or TTL signals from the terminal or
computer and gives back the same signals. No audio interface is used. Motor start/stop is
manual or through TTL or RS232 signals.
Tape speeds are 1.6" / 3.0" and 6.0" per second. 110 volt, 60 Hz, 5 watts. (220 Volts on
special order). Can use high quality audio cassettes (Philips Type) or certified data cassettes.
Can be used in remote locations from a 12 Volt battery.
Recommended for DATA LOGGING, WORD PROCESSING, COMPUTER PROGRAM
RELOADING and DATA STORAGE. Manual control except for motor start/stop. 6800,
8080 or Z80 software for file or record searching available on request with order. Used by
major computer manufacturers, Bell Telephone and U.S. Government for program reloading
and field servicing.
AVAILABILITY - Off the shelf.
PROVIDES MONITOR AND TAPE SOFTWARE in ROM. TERMINAL and TAPE PORTS
on SAME BOARD. CONTROLS ONE or TWO TAPE UNITS (CC-8 or 3M3B).
This is a complete 8080, 8085, or Z80 system controller. It provides the terminal I/O
(RS232, 20 mA or TTL) and the data cartridge I/O, plus the motor controlling parallel I/O
latches. Two kilobytes of on board ROM provide turn on and go control of your Altair or
IMSAI. NO MORE BOOTSTRAPPING. Loads and Dumps memory in hex on the terminal,
formats tape cartridge files, has word processing and paper tape routines. Best of all, it has
the search routines to locate files and records by means of six, five, and four letter strings.
Just type in the file name and the recorder and software do the rest. Can be used in the
BiSync (IBM), BiPhase (Phase encoded) or NRZ modes with suitable recorders, interfaces
and software.
This is Revision 8 of this controller. This version features 2708 type EPROM's so that
you can write your own software or relocate it as desired. One 2708 preprogrammed is
supplied with the board. A socket is available for the second ROM allowing up to a full 2K
of monitor programs.
Fits all S100 bus computers using 8080 or Z80 MPU's. Requires 2 MHz clock from bus.
Cannot be used with audio cassettes without an interface. Cassette or cartridge inputs are
TTL or RS232 level.
AVAILABILITY - Off the shelf.
2SIO (R) CONTROLLER
$190.00, Tested & Assmb.
iiihirtif i';im i
6800 CONTROLLER for SWTP
$190.00, Tested & Assmb.
PROVIDES MONITOR AND TAPE SOFTWARE in EPROM. EXPANDS MIKBUG with IK
of ADDITIONAL ROM PROGRAM
This is a complete tape controller for the SWTP 6800 system. Has 3K of EPROM space
for your own programs. A 1 K ROM (2708) is provided with all tape and monitor functions.
The ROM program is identical to our extensive 8080 ROM program.
Has one ACIA for one or two tape drives, one UART for an additional Serial port and a
4 bit parallel port for motor control. Will control one or two CC-8 or 3M3B drives with the
software provided. Can be used with other tape drives controllable with 4 TTL bits if
appropriate software changes are made.
Extra serial port is provided for your use with a second terminal or printer (RS232, TTL
or 20 ma).
The ROM program supplements the MIKbug program and is entered automatically on
reset. SWTbug compatible ROM is also available.
AVAILABILITY - Off the shelf.
Z 80 BOARD for SWTP COMPUTER
Now you can use the 8080/Z80 software programs in your SWTP 6800 machine. Re-
places your MPU board with a Z80 and ROM so that you are up and running with your
present SWTP memory and MPS card. 1 K ROM on board replaces MIKBUG.
AVAILABILITY - Off the shelf.
_$190.00, Tested & Assmb.
For U.P.S. delivery, add $3.00. Overseas and air shipments charges collect, N.J. Residents add 5% Sales Tax. WRITE or CALL for further
information. Phone Orders on Master Charge and BankAmericard accepted.
National Multiplex Corporation
_j 3474 Rand Avenue, South Plainfield NJ 07080 Box 288 Phone (201) 561-3600 TWX 710-997-9530 ^
Circle 275 on inquiry card.
BYTE August 1978 69
EXECUTION
EXECUTION
EXECUTION
EXECUTION
INSTRUCTION
TIME
TIME
INSTRUCTION
TIME
TIME
MNEMONIC
(MICROCYCLES)
(MICROCYCLES)
MNEMONIC
IMICROCYCLES]
(MICROCYCLES)
(AVERAGE)
(WORST-CASE
VALUES)
(AVERAGE)
(WORST-CASE
VALUES)
0-9
238
OUT
583
DP
152
IN
395
EE
151
SF1
163
CS
166
PF1
186
PI
1312
SF2
163
HALT
134
PF2
185
AIN
284
PRW1
130
TJC
208
PRW2
130
TX =
278
SIN
56200
95900
TXLTO
197
COS
56200
95900
TXF
277
TAN
35000
97600
TERR
191
INV SIN
54000
93900
JMP
186
INV COS
54000
93900
IBNZ
2314
INV TAN
30200
92900
DBNZ
2314
LN
24800
92000
SMDC
163
LOG
30700
92600
XEM
812
EX
30800
93900
MS
839
10X
27400
96500
MR
1385
+. -
2200
6600
LSH
168
INV*. INV-
1700
5000
RSH
173
IMt, M-)
INV
166
X
3200
22700
EN
552
INV x IMXI
2700
21400
TOGM
157
/
7800
22300
ROLL
905
INV/IM/I
7300
21100
ECLR
163
1/X
4 500
22800
POP
448
YX
55400
95500
MCLR
734
SORT
7000
30200
XEY
652
SQ
3000
21900
NOP
122
DTR, RTD
9600
41700
Table 2: Execution times for command set. The execution time is measured
in microcycles which are defined as being 10 ps long. Reproduced courtesy of
National Semiconductor Corporation.
IN/OUT Instructions (a) Mode ■ Scientific Notation
DA4-DA1
IN: D4
OUT: D04
D3
D03
D2
D02
D1
DOI
MDC + 3
Most significant exponent digit
Least significant exponent digit
Sm Se
Not used
Most significant mantissa digit {Decimal point follows this digit)
Least significant mantissa digit
IN/OUT Instructions (b) Mode = Floating Point
DP POS
MDC + 3
11
10
12-MDC
IN:
D4
D3
D2
D1
OUT:
D04
D03
D02
D01
Sm
DPPOS
Most sign
ficant Mantissa Dig
t = 0-9
Least significant Mantissa Digit = 0—9
Table 3: The data format for floating point and scientific notation input and
output. MDC stands for mantissa digit count which is set by the SMDC
instruction, it is initially set to 8. Sm is the sign of the mantissa; it is for
positive and I for negative numbers. Se is the sign of the exponent which is
set to 0, for positive, in the floating point mode. DP POS Is the decimal point
position indicator which is a value in the range from 1 1 to 12-MDC, which
indicates a digit, as given by the DP POS column In the table. The decimal
point is located to the right of this digit.
voltage swing from — 4 V to +5 V. Fortu-
nately, this is easily achieved with an LM339
comparator which makes a fine TTL to MOS
level shifter and is widely available. The BR
and RW lines are the only required outputs
that cannot drive TTL directly. CMOS in-
verters and flip flops are used to latch pulses
from these lines anyway, but in this case
they also provide buffering.
The 2.2 k pull down resistors to Vrjrj
from the ERROR, RDY and DO lines
assume the use of a bipolar (TTL) input
port. If your input port lines use high
impedance MOS receivers, then these re-
sistors should be replaced by 15 k resistors
to ground, 0V.
It is worth mentioning that in this circuit
there are a number of outputs of the
MM57109 that are completely unused. This
is because the MM57109 is a very versatile
device that can be configured in several
different ways. In this application the com-
puter performs many of the functions of the
unused pins.
The simple program detailed in listing 1 is
designed to allow you to become familiar
with the MM57109 by giving it one instruc-
tion at a time and single stepping its opera-
tion. A number of useful subroutines are
included that may be applied to larger
applications programs. After each colon
prompt character is displayed you are ex-
pected to supply a two digit octal number
corresponding to the instruction you wish to
execute. If it is a 2 word instruction, the
second word is entered after the next colon.
Whenever the OUT instruction, octal 26, is
used, the computer goes to a routine that
reads the data into a buffer and then dumps
it to the display "as is." This way, the effect
that different instructions have on the dis-
play format shown in table 3 can be seen.
Before requesting an instruction, the com-
puter polls the ERROR and BR lines and
outputs an "E" or "B," respectively, if these
lines are active. Once the ERROR line is set
it must be cleared with the ECLR instruc-
tion, but the BR line is reset automatically
by the program.
When the program is first entered at 0200
it initializes the processor by outputting a
POR pulse and ignoring the first two RDY
pulses before halting on the third. Halting
for instruction input is done by bringing the
HOLD line high. When an instruction is first
moved to the output port, the HOLD line is
left high. It is brought down on a separate
command so that the data on l-| thru lg is
fully stable before HOLD starts to change.
The computer senses when it is time for a
new instruction by monitoring the RDY line
70
August 1978 © BYTE Publications Inc
the electric pencil II
^^ c 1Q7R Mirhapi Shraver
TM
The Electric Pencil II is a Character Oriented
Word Processing System. This means that text is
entered as a string of continuous characters and
is manipulated as such. This allows the user
enormous freedom and ease in the movement and
handling of text. Since line endings are never
delineated, any number of characters, words,
lines or paragraphs may be inserted or deleted
anywhere in the text. The entirety of the text
shifts and opens up or closes as needed in full
view of the user. The typing of carriage returns
as well as word hyphenation is not required
since lines of text are formatted automatically.
1978 Michael Shrayer
As text is typed in and the end of a screen
line is reached, a partially completed word is
shifted to the beginning of the following line.
Whenever text is inserted or deleted, existing
text is pushed down or pulled up in a wrap
around fashion. Everything appears on the video
display screen as it occurs which eliminates any
guesswork. Text may be reviewed at will by
variable speed scrolling both in the forward and
reverse directions. By using the search or the
search and replace function, any string of
characters may be located and/or replaced with
any other string of characters as desired.
When text is printed, The Electric Pencil II automatically inserts carriage returns where they
are needed. Numerous combinations of line length, page length, line spacing and page spacing allow
for any form to be handled. Character spacing, BOLD FACE, multicolumn as well as bidirectional
printing are included in the Diablo versions. Right justification gives right-hand margins that are
even. Pages may be numbered as well as titled. This entire page (excepting the large titles and
logo) was printed by the Diablo version of The Electric Pencil II in one pass.
Now on CP/M
You've probably seen
The Electric Pencil in
action by now. It's the
most powerful 8080/Z80
character oriented word
processor on the market
today. Michael Shrayer is
now proud to present the
new Electric Pencil II.
NEW FEATURES: !!! CP/M Compatible !!! Disk Operating System
Supports Four Disk Drives !!! Simple File Management !!! Quick and Easy
Disk Storage and Retrieval !!! Dynamic Print Formatting !!! Multicolumn
Printing !!! Print Value Chaining !!! Page-at-a-time Scrolling !!! New
Bidirectional Multispeed Scrolling Controls !!! New Subsystem with
Print Value Scoreboard !!! Automatic Word and Record Number Tally !!!
Cassette Backup Capability !!! Full Margin Control !!! End-of-Page
Control !!! Non-Printing Text Commenting !!! Line and Paragraph
Indentation !!! Centering !!! Underlining !!! BOLD FACE !!!
WIDE SCREEN VIDEO!!!
Available to Imsai VIO video users for a huge 80x24 character screen ! !
HAVE WE GOT A VERSION FOR YOU ?
The Electric Pencil II operates with any 8080/Z80 based microcomputer that supports a CP/M disk
system and uses a Imsai VIO, Processor Technology VDM-1, Polymorphic VTI, Solid State Music VB-1B,
Vector Graphic Flashwriter or any similar memory mapped video interface. Specify when using CP/M
that has been modified for Micropolis or North Star disk systems as follows: For North Star add
suffix A to version number, for Micropolis add suffix B to version number, e.g. SS-IIA, DV-IIB.
Vers.
Video
Printer
Price
SS-II
SOL
TTY or
similar
$225.
SP-II
VTI
TTY or
similar
$225.
SV-II
VDM
TTY or
similar
$225.
SI-II
VIO
TTY or
similar
$250.
DS-II
SOL
Diablo
1610/20
$275.
DP-II
VTI
Diablo
1610/20
$275.
DV-II
VDM
Diablo
1610/20
$275.
DI-II
VIO
Diablo
1610/20
$300.
ss
MICHAEL SHRAYER SOFTWARE
1253 Vista Superba Drive
Glendale, CA 91205
(213) 956-1593
The Electric Pencil I is still available for non CP/M users:
coming
attractions
Sort & Merge Utility ! ! !
The NEC printer package ! ! !
The HELIOS Electric Pencil ! ! !
Pencil to CP/M file conversion ! ! !
CP/M to Pencil file conversion ! ! !
Vers.
Video
Printer
Cassette
Disk Drive
Price
SS
SOL
TTY or
similar
CUTS
$100.
SP
VTI
TTY or
similar
Tarbell
$ioo.
SV
VDM
TTY or
similar
Tarbell
$100.
SSN
SOL
TTY or
similar
CUTS
North Star
$125.
SPN
VTI
TTY or
similar
Tarbell
North Star
$125.
SVN
VDM
TTY or
similar
Tarbell
North Star
$125.
DS
SOL
Diablo
1610/20
CUTS
$150.
DP
VTI
Diablo
1610/20
Tarbell
$150.
DV
VDM
Diablo
1610/20
Tarbell
$150.
DSN
SOL
Diablo
1610/20
CUTS
North Star
$175.
DPN
VTI
Diablo
1610/20
Tarbell
North Star
$175.
DVN
VDM
Diablo
1610/20
Tarbell
North Star
$175.
Demand a demo from your dealer !
Circle 316 on inquiry card.
BYTE Augusi 1978 71
POWER TABLE
NUMBER
TYPE
+5V
GND
-4V
" ICI
74C04
14
7
IC2
CD40I3
14
7
IC3
LM339
3
12
IC4
MM57I09
15
21
IC5
LM340T-5.0
Figure 4: Schematic diagram for interfacing the processor to a computer. The STROBE signal can be any software controlled
output pulse with a width varying from 200 ns to 50 /us. The rise and fall times are noncritical. All unused inputs in the circuit
should be grounded to prevent floating voltage problems. All resistors are 0.25 W unless otherwise specified. All resistances are
measured in ohms.
72 August 19780BYTE Publications Inc
BASIC FLOPPY DISK SYSTEM
• RANDOM ACCESS FILES
• ANY NUMBER OF FILES MAY BE OPEN (IN USE) AT ONE TIME
• THE NUMBER OF FILES AND SIZE OF FILES IS LIMITED
ONLY BY THE SIZE OF THE DISK
• MERGING FILES REQUIRES NO EXTRA DISK SPACE
• NO WAITING FOR THE DISK TO RE-PACK
• LONGER DISK LIFE-MORE EVEN DISK WEAR
We delivered our first mini-floppy disk system a year and a half ago — 6 months ahead of any other
6800 based mini system. Since that time, it has earned the reputation of being the most reliable mini-disk
system available.
This system comes completely assembled with a disk controller that is plug compatible with the SWTPC
6800. In fact all our products use the 6800 standard SS-50 (Smoke Signal 50) bus used by SWTPC. The
cabinet and power supply are capable of handling up to 3 Shugart Mini-Floppy Drives. One drive is included
in the price of the BFD-68 and others may be added easily at any time. Or you may save money by order-
ing the dual-drive BFD-68-2 or triple drive BFD-68-3 (pictured). Price: BFD-68 $795, BFD-68-2 $1139,
BFD-68-3 $1479, SA-400 Drive $355.
A bootstrap PROM is included on the controller board to initiate the Disk Operating System. Thus, you
can be up and running from a cold start in just a few seconds.
SUPER SOFTWARE
The BFD-68 includes our new expanded disk operating system and disk file handling BASIC interpreter.
In addition, the BFD-68 is supported by the most complete microcomputer software available today. This
includes an excellent editor and text processor, several assemblers and a BASIC compiler.
Send for FREE NEW Computer Products Catalog
6304 Yucca/Hollywood, CA 90028/(213) 462-5652
Circle 320 on inquiry card.
BYTE Augusi 1978 73
Listing 7: An 8080 familiarization program
for the MM 57 109 which allows the user to
execute single commands and observe the
results. The program will output a prompt-
ing colon after which the operator can
input the command to be observed in its
octal format.
with the input port. If you have a spare
interrupt, however, you can connect it to
the RDY line to free the computer from the
task of polling the input port while the
MM57109 is executing an instruction.
DIGOUT is monitored by the computer
when processing the MM57109's OUT in-
struction. It goes high to signify the presence
of a digit on DO] thru DO4 and must be
reset by the computer after the digit is read
in. When reading in digits, the computer will
also monitor the RDY line to tell when the
instruction is completed.
It should be noted that this program was
written for my personal 8080 system and
uses memory mapped IO, ie: my IO ports
are addressed as memory locations. If you
have a system which uses the 8080 IO ports,
you will want to substitute IN and OUT
instructions for LDA and STA,
respectively."
r
v.
The KIM to S-100 bus
Interface/Motherboard
• Combines the power of the 6502 with the flexibility of
the S-100 bus
• Attaches to any unmodified KIM
• Complete interface logic and fully buffered motherboard
in one unit
• On-board regulation of power for KIM
• Eight slots of S-100 compatibility for additional RAM,
Video and I/O boards, PROM Programmers, Speech
processors . . .
• Includes all parts, sockets for ICs, one 100 pin connector,
and full Assembly/Operating documentation
♦ Kit $125, Assembled $165
♦ All units shipped from stock
FORETHOUGHT PRODUCTS
P.O. Box 386-F
Coburg, OR 97401
■ SOFTWARE LISTING FOR
I WRITTEN FOR AM 8080
oaoo 3C Br
0808 38 01 SO
0805 0E 04
0807 0D LOOP
080S C8 07 08
O20B 79
oaoc se 01 so
080F CD 8F 08
0818 CD SF 08
08 IS n 40 NEXT
0817 38 01 80
081* CD 8F 08
081 D 3* 01 80 NEXT*
0880 17
0881 17
0888 17
0883 38 04 80
0886 47
0887 08 fiF 08
088A 3E 48
088C CD 10 01
088F 78 ERROR?
0830 I 7
0831 D8 39 08
0834 3E 45
0836 CD 10 01
0839 3E 3A FETCH
083B CD 10 01
083E CD 91 08
0841 CD AI 08
0844 FE 16
0846 CA 4C 08
0849 C3 15 08
NM57I09 MICROPROCESSOR DRIVER/DEMONSTRATOR
BY P NELSON
MVI A.BF ISET POR-l.HOLD-0
STA I/0«1 I INSTRUCTION • NOP
NVI C>04 ISHORT TIMING VALUE
DCRC ITO TIME FOR
JNZ LOOP I PULSE
MOV A,C ICLR A
STA 1/0*1 ISET HOLD. POR-0
CALL NXTRDY IVAIT FOR RDY PULSE
CALL NXTRDY J WAIT FOR RDY PULSE
ORI 40 ISET H0LD-1 SO S7109
STA I/0#1 I STOPS ON NEXT RDY
CALL NXTRDY I RETURNS VITH 57109 HALTED
LDA 1/0*1 IREAD BR, ERROR
RAL
RAL
RAL
STA 1/0*4
MOV B.A
JNC ERROR?
MVI A. 48
I BR TO CARRY
ICLR F.r.'S VITH STROBE
I TEMP STORE ACC
J IF NO BRANCH
(ASCII B
CALL OUTCHR ICHARACTER DISPLAY
MOV A,B I RETRIEVE ACC
RAL I ERROR TO CARRY
JNC rETCH UN NO ERROR
MVI A, 45 IASCII E
CALL OUTCHR ICHARACTER DISPLAY
MVI A,3A IASCII I
CALL OUTCHR ICHARACTER DISPLAY
CALL OCTIN I GET INSTRUCTION CODE
CALL INSTRCT1SIVE 57109 OPCODE
CPI 16 I0UT CODE
JZ OUT J WAS IT AN OUT OP
JMP NEXT I IF NOT. NEXT INSTRUCTION
I OUT READS IN CORRECT * OF DIGITS. STOPPING BY SENSING RDY AND
I THEN DUMPS BUFFER TO DISPLAY IN HEX/BCD
084C
81
oc
03
OUT
LXI
H
ITOP OF BUFFER LOCATION
084 F
3A
01
BO
NOT YET
LDA
1/0*1
I GET INPUT
0858
17
RAL
J ROTATE
0853
17
RAL
1 DIGOUT INTO CARRY
0854
08
4F
08
JNC
NOTYET
IDIGOUT-O?
0857
1 F
NXTDIG
RAR
■RESTORE DIGIT
0858
IF
RAR
JLOCATION IN ACC
0859
77
MOV
N.A
I PUT IN BUFFER
085A
80
DCR
L
IDCR POINTER
08 5B
32
04
80
STA
1/0*4
IRESET DIGOUT F.F.
085E
3E
40
MVI
A, 40
INOV THAT VE ARE OAST OUT'S END
0860
38
01
STA
1/0*1
1 RDY. SET HOLD-I TO STOP AT END OF
OUT
0863
3A
01
80
AGAIN
LDA
1/0*1
IGET INPUT
0866
17
RAL
■ROTATE RDY INTO CARRY
0867
DA
71
02
JC DISPLAY
■IF DONE. GO TO DISPLAY
08 6A
1 7
RAL
■ROTATE DIGOUT INTO CARRY
08 6B
D8
63
08
JNC
AGAIN
■NO DIGIT READY?
08 6E
C3
57
08
JMP
ISTORE DIGIT. GET NEXT ONE
0871
3E
OC
DISPLAY
MVI
A.OC
■CALCULATE DIGIT
08 73
95
SUBL
1 COUNT (OC POINTER VALUE)
0874
4F
LISTING
MOV
C.A
ISTORE COUNT IN REGISTER C
0875
81
OC
03
LXI
H
IBUFFER LOCATION
0878
7E
MOV
A.M
IGET 1ST DIGIT
0879
E6
OF
AN I
OF
IGET LOVER 4 BITS
08 7B
FE
OA
CPI
OA
087D
DA
82
08
JC "0-9"
IDON.T CHANGE IF 0-9
0880
C6
07
ADI
07
JCONVERT A-F
0888
C6
30
"0-9"
AD I
30
■CONVERT ALL TO ASCII
0884
CD
10
01
CALL OUTCHR
■DISPLAY CHARACTER
0887
8D
DCR
L
IDECR POINTER
0888
OD
DCR
C
1DECR COUNT
0889
CE
78
OE
JNZ
MORE
IDHORE DIGITS TO DISPLAY
08 8C
C3
ID
OS
JMP
NEXT*
■DO NEXT INSTRUCTION
1 NXTRDY
WAITS
FOR A POSITIVE TRANSITION ON THE RDY LINE AND THEN
■RETURNS
08SF
noQO
3A
i i
°i
80
NXTRDY
LDA
1/0*1
IGET INPUT
0898 17
0893 DA BF OS
0896 3A 01 80 NOTRDY
0899 1 7
089A DS
089B C3 96 OE
RAL
JC NXTRDY
LDA 1/0*1
RAL
RC
■ROTATE RDY INTO CARRY
■GET INPUT
■ROTATE RDY INTO CARRY
■IF CARRY IS HIGH.RETURN
JMP NOTRDY IOTHERVI5E TRY AGAIN
■OCTIN RECEIVES 8 DIGITS CIT ASSUMES NUMERIC INPUT) AND CONVERTS
ITO A 6 BIT VALUE IN ACC REPRESENTING A 8 OCTAL DIGIT INSTRUCTION
■CODE FOR THE 57109. AN INTERRUPT DRIVEN KEYBOARD IS ASSUMED. BUT
ITHE 3 BYTE FORMAT (EI.HLT.NOP) LEAVES ROOM FOR A CALL INSTRUCTION
ITO THE USER'S INPUT SUBROUTINE IF THIS IS NOT THE CASE
089E
FB
EI
■ GET
089F
76
HLT
■ BYTE
080A
00
NOP
■INPUT
08A1
E6
07
ANI
07
■ MASK FOR LOVER
08A3
17
RAL
■ MOVE
08A4
17
RAL
IDIGIT UP 3
08AS
17
RAL
■POSITIONS
08A6
47
MOV
B.A
ITEMP STORE ACC
08A7
FB
EI
IGET
08A8
76
HLT
IBYTE
08A9
00
NOP
■INPUT
08AA
E6
07
ANI
07
■MASK FOR LOVER
08AC
BO
ORA
B
■COMBINE DIGITS
08AD
C9
RET
I (RETURN)
IINSTRCT PUTS INSTRUCTION CODE ON II TO 16 WHILE LEAVING HOLD HIGH.
■IT THEN SETS HOLD TO 0.
08AE F6 40
08B0 38 01 SO
08B3 E6 3F
08B5 38 01 80
08B8 C9
INSTRCT ORI 40
STA 1/0*1
ANI 3F
STA 1/0*1
RET
IHOLD-1 VITH OPCODE
•OUTPUT IT
IMXB-1 OF HOLD -
■OUTPUT IT
■(RETURN)
74 August 1978©BYTE Publications Inc
Circle 140 on inquiry card.
A COMPLETELY REFURBISHED "SELECTRIC"
ASCII TERMINAL FOR THE SMALL BUSINESSMAN
OR SERIOUS HOBBYIST.
The AJ 841 I/O Terminal.
Now with RS232 interface.
Now available from dealers.
Demand for our AJ 841 I/O
computer terminal has been
great. And now that we've finally
added RS 232 interface, it will
get even greater. So while you
can still order it direct from us,
now you can also buy it from
dealers around the country. But
act now. Our special
introductory price of
$995 will soon
be raised.
The AJ 841 features:
• Choice of Serial RS 232 or
parallel interface
• ASCII code
• 14.9 cps printout
• High quality Selectric printing
• Reliable, heavyduty
Selectric mechanism
Off-line use as typewriter
Documentation included
30-day warranty — parts and
labor
Mail order shipments to AJ
office or direct to you.
Warranty and service
available from your local AJ dealer —
or from AJ offices in :
Atlanta/Boston/Chicago/Cincinnati/
Cleveland/Columbus/Dallas/
Detroit/Hackensack/Houston/
Los Angeles/New York/Philadelphia/
San Jose/Washington, D.C.
Full warranty information
available on request.
Order with coupon — or from
your local AJ dealer
For location of your nearest AJ dealer
call toll-free: 800/538-9721
(Calif, residents call 408/263-8520).
HOW TO ORDER DIRECT
FROM THE FACTORY
1 . Make cashier's check or money order
payable to Anderson Jacobson, Inc. and
mail to:
Anderson Jacobson, Inc.
PERSONAL COMPUTER TERMINAL
521 Charcot Avenue
San Jose, CA95131
2. You will be notified when your unit is
ready for shipment. Allow six to eight
weeks for delivery.
3. Shipments direct to you will involve a
collect freight charge (FOB San Jose) in
addition to the $35 handling charge.
Shipments to nearest AJ office include
freight in the $35 handling charge.
4. For warranty or repair service, return
unit to local dealer or to designated AJ
service location.
Available only in U.S.
Circle 10 on inquiry card.
CLIP AND MAIL WITH ORDER
Select interface: □ RS232or D Parallel
Select keyboard: □ EBCD or □ Correspondence
□ Ship direct to me (freight collect, FOB San Jose)
□ Ship to AJ office (freight incl. in handling charge)
Number of units at $995 each $
Sales tax at delivery location
Shipping and handling $35 each
(excluding San Jose)
TOTAL
NAME
ADDRESS
CITY
STATE .
ZIP-
PHONE (
BYTE August 1978 75
PERSONAL COMPUTING COLLEGE
Has the industry's leading speakers
participating
Dr. John W. Mauchly, Co-inventor of EIMIAC.
Robert W. Bemer, The father of ASCII
Dr. Adam Osborne, Author, of Osborne & Associates
Robert S. Jones. Publisher & Editor-in-chief, INTERFACE AGE MAGAZINE
Carl Warren. Senior Editor, INTERFACE AGE MAGAZINE
Walter Banks, Author, University of Waterloo
Dr. Christopher A. Titus, Author of the BUGBOOKS
Carl T. Helmers, Jr., Editor-in-chief, BYTE MAGAZINE
Christopher P. Morgan. Senior Editor, BYTE MAGAZINE
Blaise W. Liffick, Senior Editor, BYTE MAGAZINE
Dr. Robert Suding, of The Digital Group
Chod Harris, of the Americal Radio Relay League
David H. Ahl, Publisher, CREATIVE COMPUTING MAGAZINE
Merl Miller, Author, Publisher dilithum Press/Matrix
Bill Langenes, Associate Editor, COMPUTER RETAILING
Jim Warren, West Coast Computer Faire
Sol Libes, President, Amateur Computer Group of New Jersey
Richard Moberg, President, Philadelphia Area Computer Society
Richard A. Kuzmack, President, Chesapeake Microcomputer Club
Rodnay Zaks, Author, Publisher, SYBEX Inc.
Howard A. Chamberlin, Jr. (Hal), Author, Inventor, Micro Technology Unlimited
Larry Steckler, Editor, Radio-Electronics Magazine
Tod Loofbourrow, Student and Author for Interface Age Magazine
and Hayden Book Co.
many-many more.
80 hours of free seminars
on subjects such as:
• Building your own robot
• Personal computing applications
for the home
• The microcomputer controlled
solar energy home
• Business applications
• Educational uses
• Understanding softwear
• Ham radio applications
• Designing your own
microcomputer system
• Everything you wanted to know
about floppies
• Softwear copywriting and
trademarks
SPECIAL at our show:
• The unveiling of a new,
complete, easy-to-learn high
level language for micro-
computers.
• A complete series of seminars
aimed at the small business
man presented by the
INTERFACE AGE speaking team.
• Computer music.
THE AMAZING MICRO-MOUSE MAZE CONTEST
Official East Coast Runoffs being held Fri., Sat.,
Sun. at the show. Sponsored by IEEE Spectrum.
A contest of self-contained microcomputer
controlled mice designed to negotiate a complex
maze.
PHILADELPHIA CIVIC CENTER
August 25. 26. 27th at the Philadelphia Civic Center
76 BYTE August 1978
Circle 302 on inquiry card.
THE 1st FULL DAY INDUSTRY TRADE SHOW AUG. 24th
> Personal
C Computing
LARGEST SHOW EVER HELD!
300 BOOTHS
Open Only To:
EXHIBITORS
DEALERS — RETAILERS
INDUSTRY REPRESENTATIVES
EXHIBITOR GUESTS
PHILADELPHIA
Personal Computing and Small Business Computer Show
PHILADELPHIA CIVIC CENTER £££&,„,
PRE
P.E
G\Stt*
Q • A Full Day To See Your Suppliers, Dealers, Distributors
fO" •New Products and New Manufacturers
• Plus Three Additional Days
• Aug. 25th-27th, Personal Computing Show
I Distinctive Badge for Admission to Aug. 24th Trade Show
I Special Seminars and Meetings
► Admission to Personal Computing Show Aug. 25th-27th
i Hotel and Philadelphia Information Package
(Newsletter
See our ad on page 151.
I | Send Dealer-Retailer
Registrations at $15.00 each
I I Send Exhibitor Information
COMPAMY NAME.
NAME
Amount Enclosed $
STREET.
CITY
.STATE.
.ZIP.
PHONE.
Please include your business card
or Letterhead.
Send To:
PERSONAL COMPUTING Inc.
Rt. 1 Box 242 • Mays Landing, N. J. 08330
609—653-1188
BYTE
Circle 302 on inquiry card.
BYTE Augusl 1978 77
PASCAL
A Structurally Strong Language
Stephen R Alpert
Worcester Polytechnic Institute
Worcester MA 01609
PASCAL forces the user
to think logically and
plan out the program.
Most PASCAL users con-
sider programs better if
they have fewer labels.
People should be able to communicate
their ideas to a computer in a language that
people understand; not simply in a language
they know. Additionally, if the computer
can be made to understand the same language
easily, all the more reason to consider its
use. Such a language is PASCAL. This lan-
guage, perhaps more than any other com-
mon language, is the easiest to understand
and more importantly, allows a straight-
forward presentation of most algorithms.
Although many languages also make this
claim, few have the overwhelming and
energetic support from collegiate computer
science departments. Let's consider some
of the language features of PASCAL.
This language is equipped with a precise
syntactical description that defines both
how programs may be constructed and
how PASCAL compilers should function.
There is a required form for programs,
statements within programs, and data
operated upon by programs. At first glance,
a naive user may rebel at this apparent lack
of freedom: (eg: BASIC allows a dimension
statement virtually anywhere in a program).
One soon learns that this structure admits
very general programs and in no way limits
the programmer in exercising his talents. On
the contrary, it forces the user to think
logically and plan out the program.
A program written in PASCAL may
utilize the free format form of programs that
is conducive to structured programming.
Unlike line oriented source languages,
PASCAL allows extra spaces, tabs and car-
riage controls to be inserted anywhere with-
out significance except in the middle of
identifiers or character strings. Comments
may be inserted wherever spaces may be
inserted and are delimited by "(* . . . *)".
A program is made up of two parts, a
heading and a block. The heading contains
the name of the program and lists its param-
eters. The parameters are somewhat im-
plementation dependent but normally
specify the names of file pointers from
which the default input is received and to
which output is sent. A typical heading is
program parser (input, output)
A block consists of six separate segments or
sections of a program. All but the last part
are optional. These are:
• Label declaration section
• Constant declaration section
• Type declaration section
• Variable declaration section
• Procedure and function declaration
section
• Statement section
Labels in PASCAL identify statements
to which control may be transferred. Labels
are numeric; more specifically, unsigned
integers. Not every statement requires a
label. In fact, most PASCAL users consider
programs better if they have fewer labels.
At first glance, these declarations might
seem a nuisance, but they force the user
to think about the entire program before
sitting down at a terminal.
The constant declarations allow a user to
create synonyms for constants used in the
program. Thus
const
pi=3. 141592;
e=2. 7182818;
defines the constants "pi" and "e" for use
throughout the program. Clearly, it no
longer is necessary to type 3.141592 in the
several places required by a program. Addi-
tionally, one may name character strings
as well
const title='matrix inversion program v01';
The type declaration section allows creation
of user defined named data types. This
will be discussed in some detail later. PASCAL
has four predefined data types: integer, real,
Boolean, and character. Most versions of
BASIC support the first three' types and
78 August 1978 ©BYTE Publications Inc
ARTEC CRAFTSMANSHIP HAS CREATED
The First
Truly Silent
Motherboard
Noise in your bus lines means errors
in your programs. The Artec shielded
Motherboard totally eliminates noise.
At 4MHz, the Artec shielded
Motherboard is free from spurious
noise. No ringing in your bus lines.
No errors in your programs.
This Motherboard offers you
engineering and craftsmanship
never before available in the small
computer field. Outstanding as
either a replacement for your
present Motherboard or as the
heart of a new system. Con-
sider these features:
■ Veth inch thick — more than twice as thick
as most Motherboards.
■ Totally shielded — all holes plated
through; full bus terminations
■ Fits easily into any stan-
dard chassis.
■ Masterite edge
connectors — the
finest quality con-
nectors available.
■ Reflowed solder circuitry.
■ No soldering required.
■ Designed for the S-100 bus.
The Motherboard price is: $150(kit)
$190 (ASSEMBLED)
Five years of experience in every card
For five years, Artec has worked hard to de-
velop a complete line of custom, prototype and
off-the-shelf printed circuit boards. And in five
years of tough industrial use, Artec boards have
proven themselves among the most reliable
boards available anywhere.
NEW! DEC® and Heath Compatible LSI
Boards
The new Artec WW11 lets you adapt or add
onto your DEC LSI-11 or Heathkit LSI mini-
computer. Can accom-
modate 14 and 16 pin
DIPs plus all necessary
passive components.
FULL CARD $75
(10.45" x 8.4")
HALF CARD $35
(5.225" x 8.4";
® Trademark of Digital Equipment Corporation
Order today!
Put an Artec board to work for you. Use your
Mastercharge or Visa. Or just send along a
money order. We can accept only U.S. currency.
Please include $3 handling on all orders. Califor-
nia residents add 6% sales tax.
Please send me: (include quantity)
Shielded
Motherboard
Full WW11
Card
Half WW11
Card
D I've enclosed a money order for $
□ Mastercharge □ Visa
(number)
(exp. date)
Name
Address
City
Calif. Res. add 6% sales tax. End. $3 handling. ?0% discount for students and
computer club members. (Please enclose name of club or school)
State
Zip
dRTGC ei£CTROMia, IMC
Artec Electronics, Inc. -605 Old County Rd.«San Carlos, CA 94070
(415) 592-2740
Circle 20 on inquiry card.
BYTE August 1978 79
Arrays may be multi-
dimensional and include
arrays of arrays.
Items of different types
may be aggregated into a
single entity that can be
stored as one logical
unit.
strings. Data of type character is very con-
venient in a microprocessor environment
since a byte is the basic unit of memory.
The variable declaration section requires
the naming of all identifiers that will be used
as variables within this block. FORTRAN,
BASIC, APL, and LISP do not adhere to this
convention. Again PASCAL forces the user
to think about what he wants to say before
he says it. A sample variable declaration
section might be
var x,y: integer;
cost: real;
flag: boolean;
PASCAL'S design allows the user to combine
the utility of type declarations and variable
declarations into data forms that would
shame BASIC and FORTRAN. We have
already seen PASCAL'S predefined scalar
variable types above. These are actually
known as simple types.
Another simple type is the subrange type.
Often a variable in a program may be ex-
pected to take on values only from a subrange
of a simple type, say integers. For example
var asiz: 1 ..1 00;
meaning "asiz" will be an integer whose
values should lie between 1 and 100. Note
that the compiler might choose to store
"asiz" as a byte rather than a word if it was
efficient enough to do so. Alternatively, if
several variables are of the same range, a
type statement could have been used
type lsiz=1..100;
var asiz, bsiz, f1 :lsiz;
Another simple type is the symbolic
scalar type. This feature permits identifiers
to be used in place of a sequence of integers,
greatly enhancing the readability of the
program. Suppose a program needed to
represent the months of the year as a vari-
able associated with some billing informa-
tion. The approach in BASIC would be to
use the sequence 1, 2, ...,12. PASCAL
could use the subrange type 1 . . 12 or better
type
months = (jan, feb, mar, apr, may, jun,
Jul, aug, sep, oct, nov, dec);
var billmonth,duemonth:months
In the statement section of a program,
"billmonth" may be assigned one of the
symbolic scalars from "months" or tested to
see how its value compares with "due-
month." There are several functions avail-
able that operate on symbolic scalars, for
example, ord(billmonth) would yield a
number between and 11 indicating the
position of that month in the list "months."
Simple types are part of a more general
data description called a type. Types include
pointers which are used when dynamic data
storage is referenced, file pointers which are
used to reference secondary data storage,
and arrays which are used with vector data
storage. An example of an array declara-
tion is
var cost: array[months] of real;
Notice that this array will be indexed, or
subscripted, by "months." In general,
arrays may be indexed by any simple types,
may be multidimensional, and may be of
any type, including arrays of arrays.
Two additional types set PASCAL in a
class by itself; these notions allow powerful
algorithm descriptions. The set type allows
user manipulation of sets. Consider
var special: set of months;
The union, intersection, and set difference
operators as well as relational operators may
be applied to sets. A variable of scalar
type may be tested for membership in a set
of the same scalar type, for example
if billmonth in special then. . .
The last type is the record type. Items of
different types may be aggregated into a
single entity that can be stored as one logical
unit, for example as one element of an
array.
type
customer = record
name:array [1..20] of char;
bal,bal30:real;
datedue:daterec
end;
daterec = record
day: 1.. 31;
mo:months;
year: integer
end;
var
database: array [1.. 100] of customer;
To reference fields of a record, the record
name followed by a period, followed by the
field name is used. Hence the over 30 day
balance of customer 12 is "database[12] .
bal30" and the day of the due date of the
current bill of customer 27 is "database [27] .
datedue.day." The full impact of record
types cannot be explained in this short
article; they must be used to be appreciated.
One advantage of records is that items may
be logically grouped together rather than
stored in parallel arrays.
Procedure and function definitions would
follow next in a program. They may be
recursive and permit parameter passing in a
style somewhat similar to ALGOL. Because
of the position in a program of these declara-
tions, procedures and functions may
reference globally any variables or types
defined in the main program. The body of a
80 August 1978 © BYTE Publications Inc
tft
BUSINESS SOFTWARE FOR MICROCOMPUTERS
IS HERE— AT LAST
Osborne & Associates is publishing its business systems in book form. These
systems represent five years of development and testing by O&A programmers,
and the books include another year's worth of extensive and detailed documenta-
tion.
What systems are we selling?
1. PAYROLL WITH COST ACCOUNTING — available now, on display at
your local computer store.
2. ACCOUNTS PAYABLE AND ACCOUNTS RECEIVABLE — should be
published by July 30.
3. GENERAL LEDGER — will follow A/P AND A/R, probably published in
September.
Each book sells for $15, and includes source listings in Wang BASIC, program
and system documentation, and user's manual. Each is a complete package by it-
self, or all three may be implemented together to form a complete system with
interdependent files.
And if Wang BASIC won't work, or you don't know programming, or you'd
rather not key in thousands of words of source code*, take a look at the list of
consultants who have adopted O&A programs, converted them to run on many
popular systems, and are waiting to hear from you.
*Wang listings available from Osborne & Associates on cassette or hard disk.
GOOD NEWS FOR CONSULTANTS, COMPUTER STORES AND SYSTEMS
HOUSES
Osborne & Associates is converting its business systems from Wang BASIC — as it was originally
published — to CP/M C-BASIC, which runs on most floppy disk-based microcomputer systems.
The disks for each book sell for $250. Once you buy the floppy disk you can copy it, resell it, change
it or use it. We place no restriction on the magnetic surface; we copyright only the printed word in
our books.
We will only sell the CP/M magnetic surface to consultants, computer stores and systems houses.
Osborne & Associates prefers to write and sell books, not customize the programs or answer the
end user's questions. PAYROLL should be available on CP/M in July — call us for exact
availability and more policy information.
If you are an end user, write or call us. We will put you in touch with your closest dealer.
BASIC Business Program Conversions
Alpha-Micro system:
Scotl Brim, President
COMPUTER SYSTEMS FOR BUSINESS. INC.
3.100 Sirius Avenue. Las Vegas. NV 89102
Digital Group system:
John Musgrovc
MUSGROVE ENGINEERING
9547 Kindletree Drive. Houston. TX 770411
Mils 4.1 BASIC:
William K. Haines
ANACOM GENERAL CORPORATION
1160 East Ash Avenue. Fullerlon. CA 921.31
Microsoft disk BASIC:
Dan Kindred
GNAT COMPUTERS
7895 Convoy Street
San Diego. C A 921 I 1
Want! BASIC on floppy disk:
Richard M. Armour
ATLANTIC COMPUTING AND CONSULTING
1104 Sparrow Road
Chesapeake. VA 2.1.125
Vector Graphic. Polymorphic. Southwest,
Cnimemco and Noval systems:
E. Allen Whedon. President
COMPUTALL CORPORATION
2740-K South llarhor Blvd.
Santa Ana. CA 92704
C-BASIC with CP/M disk, and Wang
BASIC on cassette or hard disk:
Mary Borehers
OSBORNE & ASSOCIATES, INC
P.O. Bos 2036
Berkeley. CA 94702
Dec (PDP-11):
Gregory DeRosa
MICRO-BASE ASSOCIATES
.1713 Windward Way -204
Columbus. Oil 43204
MICROFILE:
Clarence Malloy
COMPUTER ELECTRONIC MODES. INC
1098 S. Milwaukee Avenue. Suite 20ft
Wheeling. IL ft0090
Texas Instruments TMS99II0
MOS Technology 65112:
David Michael Mvers
TULIP ASSOCIATES
I' O. Box T
llughesville. MD 206.17
These prices effective July 1, 1978.
6001 Volume — The Beginner's Book
2001 Volume I — Basic Concepts
3001 A Volume I
- Some Real Products
4001 8080 Programming for Logic Design
5001 6800 Programming for Logic Design
7001 Z80 Programming for Logic Design
31003 8080A/8085 Assembly Language Programming
32003 6800 Assembly Language Programming
21002 Some Common BASIC Programs
22002 Payroll With Cost Accounting
23002 Accounts Payable and Accounts Receivable
PRICE
$ 7.95
$ 8.50
$15.00
$ 8.50
$ 8.50
$ 8.50
$ 8.50
$ 8.50
$ 8.50
$15.00
$15.00
QTY
• 6V2%, SF Bay Area residents only
•6%. California residents outside SF Bay Area
• Payment by check or money order
must be enclosed for orders of
10 books or less.
TOTAL
Sales Tax
(Calif, residents only)
Shipping Charges
TOTAL AMOUNT ENCLOSED
AMT
eft
OSBORNE & ASSOCIATES, INC.
P.O. Box 2036 DEPT. Ill
Berkeley. California 94702
(415) 548-2805
TWX 910-366-7277
CITY
STATE
SHIPPING CHARGES
ZIP PHONE
Shipping for large orders to be arranged.
ITJ All foreign orders, $3.00 per book, for air shipment
D 4th class $0.35 per book (allow 3-4 weeks within USA. not applicable to
discounted orders)
D $0.75 per book. UPS (allow 10 days) in the U.S.
□ $1.50 per book, special rush shipment by air in the U.S.
Please send information on:
D Becoming an O&A dealer
□ School discounts
D List of foreign distributors
•This book is scheduled to be published during 1978
Please notify me when it is available:
D 24002 General Ledger
F9
Circle 293 on inquiry card.
BYTE August 1978 81
procedure or function is identical to the
body of a program; hence, procedures may
be defined within procedures, and so on.
Any variables defined within procedures or
functions are considered local to the pro-
cedure and are unique to each invocation of
the procedure. The sample program in
listing 1 has several examples.
The statement portion of a program is
called a "compound." A compound is a
sequence of the keyword begin, any num-
ber of statements separated by semicolons,
Listing J: The Polish "compiler" listing. Notice that PASCAL does not con-
strict the format of the program line. Indentation allows the program blocks
to be easily separated from each other and makes the program easier to read.
PROGRAM PARSEdNPUT, OUTPUT),
(♦PROGRAM PARSES SIMPLE ARITHMETIC EXPRESSIONS
INTO THEIR RESPECTIVE POLISH CODE IT DOES
THE PROPER TYPE CONVERSIONS NECESSARV FOR
REAL AND INTEGER EXPRESSIONS ACCORDING TO
THE FORTRAN CONVENTION:
REAL A-H, 0-Z
INTEGER: I-N
VARIABLES ARE ONE LETTER LONG*)
LABEL 99; (*FOR ERROR RESTART*)
CONST
DONTCARE='?'i OMARKERS FOR CODE GENERATOR*)
MAXPC=108; (*MAXIMUM CODE SPACE*)
TVPE
CODESPflCE = l. . MAXPC; (*ADDRESS SPACE*)
ATTR=(NDNE, INT, REA); ( *ATTRIBUTES OF OPCODES AND EXPRESSIONS*)
LEXTY=<ADDOP, MULOP- LPAREN, RPAREN, IDENT, EOL);
(♦THESE LEXEMES FOR INPUT ASSUME A NON-HOSTILE USER*)
INSTRUCTION=RECORD
OPC:CHAR; (*OPCODE*>
ITYPE: ATTR; (*OPCODE TVPE*)
ADR: CHAR (*NAME OF IDENT*)
END;
VAR
CODE: ARRAVtCODESPACE] OF INSTRUCTION; (*MHERE CODE GOES*)
PC: CODESPACE; (*PC OF CURRENT INSTRUCTION*)
GATTR:ATTR; (*GLOBAL TVPE OF EXPRESSIONS*)
CH: CHAR; (*CURRENT INPUT CHARACTER*)
CHTYPE:ATTR; (*CURRENT CHARACTER ATTRIBUTE IF IDENT*)
LEX: LEXTY; (*LEXEME OF CURRENT INPUT*)
BFR: PACKED ARRAY [ 1. . 80 } OF CHAR; (*INPUT BUFFER*)
BP: INTEGER; (*CHARACTER BUFFER POINTER*)
PROCEDURE SCAN; (*PROCESS NEXT INPUT CHARACTER*)
BEGIN
REPEAT
BP: =BP+1;
CH: =BFRCBP3
UNTIL CHtt' ';
<*WORRY ABOUT END OF LINE*)
IF ORD(CH)=0
THEN LEX: =EOL
ELSE
IF CH IN CH'. . 'Z' ]
THEN
BEGIN
LEX: =IDENT;
IF CH IN [ 'I'. . 'N']
THEN CHTVPE: =INT
ELSE CHTYPE: =REA
END
ELSE
CASE CH OF
'(': LEX
=LPHREN;
' ) ' : LEX
=RPAREN;
'♦', '-'
LEX: =ADDOP
'*', '/'
LEX: =MULOP
END
END (*OF SCAN*);
PROCEDURE ERROR;
BEGIN
WRITELNC ':BP+1,
'T ERROR');
GOTO 99
END (*OF ERROR*);
(♦COMPENSATE FOR USER PROMPT*)
and the keyword end. The program ends
with a period. Each of the statements with-
in a compound may be one of a variety of
different kinds of statements. Assignments,
like
database[i+k] .bal:=total
are the most common statements. PASCAL
supports a large number of control state-
ments which give the language its structure.
PASCAL has a looping control similar
to that of standard BASIC but the step or
increment may be only +1 or —1. The for
statement causes a single statement, which
could be quite complex, to be executed
some number, including zero, times. For
example
for ind. =1 to 100 do
begin
due:=1 .006*database[ind] .bal;
databaselind] .bal:=0.0;
sum:=sum+due;
databaselind] .bal30: =
1.006* databaselind] .bal30+due
end
This segment shifts the balance 30 days,
adds some interest charge and accumulates
a sum of the recently aged balances. If in
a for statement, the increment were to be
— 1, then the keyword downto would re-
place the keyword to.
PASCAL supports both simple condi-
tional and full conditional statements; that
is
if <condition> then <statement>
and
if <condition> then <statement>
else <statement>
Any "dangling else, an else which follows a
sequence of "if . . . then if . . . then . . .,"
is paired with the innermost if.
When working with records, partial ad-
dressing can be done by using the "with"
statement. This allows the fields of a record
to be referenced as variables. The previous
example then becomes
for ind: = 1 to 100 do
with databaselind] do
begin
due: = 1.006*bal;
bal: =0.0;
sum:=sum+due;
bal30: = 1.006*bal30+due
end
Three additional control statements are
the while, repeat, and case statements. The
while statement allows a given statement
to be executed as long as some Boolean
expression is true (the condition is tested
first).
while <condition> do < statement^
The repeat statement allows one or more
82 August 1978 © BYTE Publications Inc
Dynabyte builds
confidence into
my computer."
,,
Plug-in-and-run performance takes the uncertainty out of
owning a computer. That's the kind of computer products
Dynabyte builds.
Confidence in your computer is increased because you know
that Dynabyte S-100 boards are factory assembled by trained
technicians, burned in for 72 hours at elevated temperatures and
continuously tested for three days.
That was true of the industry's first assembled and tested 16k
dynamic RAM from Dynabyte, and it continues with all the other
products from Dynabyte.
Once you plug Dynabyte boards in their careful design,
factory prime components and quality construction keep them
running. Dynabyte backs them with a one year warranty — the
longest in the industry.
Incompatability is coming to an end. Dynabyte's 16k and 32k
static RAMs come with access times of either 250ns for Z-80A
processors or 450ns for 8080 and 8085 chips. You can use the
16k static RAMs with Alpha Micro or Cromemco bank switching
memory expansion techniques.
Computer users are so confident of Dynabyte's 16k dynamic
RAM they have made it the most widely used S-100 dynamic
memory in the world.
If you intend to become a proficient data processor but
instead are unhappily debugging your system, or want to avoid a
lot of debugging, then Dynabyte will be a great choice.
As you spend less time monkeying with hardware and more
time computing, you'll become more confident of your abilities
and proud of your accomplishments. Isn't that what owning a
computer is all about?
Tell your computer retailer with confidence that you want
Dynabyte boards — the plug-in-and-run performers.
1005 El well Court,
Palo Alto, CA 94303.
(415) 965-1010.
DunanuTE
'. nEuuHiiiiiiiifrnnniiiTriiii i
32k Fully Static RAM. 250ns or 450ns; 4k
boundary addressing; no DMA restrictions; full
Schmitt trigger buffering; no wait states;
complete S-100 compatibility; conservative
thermal design includes eight regulators and
heat sinks. 250ns, $995. 450ns, $925.
16k Fully Static RAM. 250ns or 450ns; bank
select is provided and is compatible with most
popular schemes for memory expansion beyond
64k including Alpha Micro and Cromemco
systems; 4k block addressing along 4k
boundaries; write protect with alarm for each 4k
block; full Schmitt trigger buffering. 250ns, $555.
450ns, $525.
Jlfljl » ,••911
16k Dynamic RAM. The industry's most
popular S-100 dynamic RAM. Self-contained
refresh logic is transparent to the 8080 processor
and never generates a WAIT state. 1MHz direct
memory access, 16k addressing. The Original
Great Memory by Dynabyte, $399.
Naked Terminal. 80 character x 24 line =
1 920 character display capacity. Mot just a video
interface but a full terminal; plug into a
mainframe with keyboard and monitor and save!
Upper and lower case; black/white or
white/black; block mode editing; addressable
cursor; half and full duplex; no software support
required; addressable status and I/O ports. $350.
Circle 1 10 on inquiry card.
BYTE August 1978 83
Listing I, continued:
■:*PC OF FIX LOCATION OF OPERAND 1*
<*CURRENT OPERATOR*)
OHTTRIBUTE OF OPERAND 2*)
DON'T AGREE*)
PROCEDURE GENCODECF: CHRR; IflTTR; R:CHRR);
BEGIN PC=FC+1;
IF POMRXPC
THEN BEGIN URITELNC ' OVERFLOW ) ; ERROR END;
WITH CODECPC] DO <*INDEX INSTRUCTION*)
BEGIN OPC: =F; ITVPE: =1; RDR: =A END
END <*OF GENCODE*);
PROCEDURE LISTCODE;
VAR LPC: CODESPRCE;
BEGIN
FOR LPC: =1 TO PC DO
WITH CODECLPCn DO BEGIN <*INDEX INSTRUCTION*)
CRSE OPC OF
'+' : WRITE < 'HDD');
'-' : WRITE'. 'SUB');
'9' : WRITE < 'NEG');
'*' . WRITE < 'MUL' );
'/' : WRITE('DIV');
'F' : WRITE< 'FLOAT');
'P' : WRITE<'PUSH') END;
IF OPCtt'F'
THEN
BEGIN
IF ITYPE=INT THEN WRITE<'I'> ELSE WRITE('R')
END;
IF OPC='P' THEN WRITELN<CHR(11B), HDR) ELSE WRITELN
END (*OF WITH AND FOR*)
END <*OF LISTCODE*);
PROCEDURE FIXUPCAX: CODESPACE
LOP: CHRR;
LRTTR: RTTR);
VRR TPC: CODESPACE;
BEGIN
IF GRTTRttLATTR C*TVPE
THEN
BEGIN
IF GATTR=INT C*FLORT OPERAND 2*)
THEN BEGIN GENCODE < 'F ', HONE, DONTCRRE ); GfiTTR: =RER END
ELSE <*HRVE TO FLOAT OPERAND 1, MOVE CODE UP*)
BEGIN
IF PC=MRXPC THEN BEGIN WRITELN< 'OVERFLOW' ); ERROR
FOR TPC: =PC DOWNTO RX DO CODECTPC-H] . =CODE[TPC3;
PC:=PC+1; <*TOOK RNOTHER WORD*)
CODECRX:. OPC: ='F' <*FLORT OPERAND 1*)
END
END;
GENCODECLOP, GATTR, DONTCRRE) (♦GENERRTE OPERATION*)
END <*OF FIXUP*);
PROCEDURE EXPR; <*HERE IS RLL THE WORK*)
VRR
LOP: CHRR; <*CURRENT RDDOP* >
LRTTR: RTTR; <*ATTRIBUTE OF OFEPRND S* )
RXPC: CODESPACE; <*WHERE FLORT OF OPERAND 1 GOE
PROCEDURE TERM;
VRR
LOP: CHAR; <*CURRENT MULOP*)
LRTTR: RTTR; <*RTTRIBUTE OF OPERRND 2*)
RXPC: CODESPRCE; <*WHERE FLORT OF OPERRND 1 GOES
PROCEDURE FACTOR;
BEGIN
IF LEX=IDENT ^IDENTIFIER*)
THEN
BEGIN
GATTR: =CHTVPE;
GENCODEC'P', GATTR, CH);
SCAN
END
ELSE
IF LEX=LPRREN
THEN
BEGIN
SCRN; EXPR;
IF LEX-RPAREN THEN SCAN ELSE ERROR
END
ELSE ERROR <*JUNK INPUT*)
END <*OF FfiCTOR*);"
BEGIN OOF TERM*)
FACTOR;
WHILE LEX=MULOP DO
BEGIN
LRTTR: =GATTR; LOP=CH;
flXPC:=PC+l; OSAVE ADDR OF NEXT INSTRUCTION*)
SCAN; FACTOR;
FIXUPCAXPC, LOP, LATTR)
END
END <*OF TERM*);
BEGIN OOF EXPR*)
IF LEX=RDDOP OLERDING SIGN*)
THEN
BEGIN
LOP: =CH; SCAN; TERM;
IF LOP='-' THEN GENCODE!. '9', GATTR, DONTCARE)
END
ELSE TERM;
WHILE LEX=RDDOP DO
BEGIN
LRTTR: =GRTTR; LOP: =CH;
RXPC=PC+1; OSRVE RDDR OF NEXT INSTRUCTION*)
SCRN; TERM;
FIXUP'.RXPC, LOP, LRTTR)
END
END <*OF EXPR*?;
BEGIN OOF MRIN PROGRRM*)
WHILE TRUE DO OINFINITE LOOP*)
BEGIN
99: REPERT
WRITEC '>>'); OPROMPT USER*)
BP: =0; OGET INPUT LINE*)
WHILE NOT EOLN DO
BEGIN
BP: =BP+1; READ^BFRCBP])
END;
RERDLN ORESET EOL INDICATOR*)
UNTIL BPftl; OGET A NON-EMPTY LINE*)
BFRCBP3: =CHR<0); C* <NULL> FOR EOL*)
PC:=0;BP:=0; OSCRN FROM THE BEGINNING*)
SCRN;
EXPR; ODOES RLL THE WORK*)
IF LEX=EOL THEN LISTCODE ELSE ERROR
END
END.
IF NEEDED*
IF NEEDED*)
statements to be executed until a condition
becomes true (the condition is tested last).
repeat <statement> { ;
<statement> } until <condition>
The brackets denote a portion that may
occur zero or more times; for example
ind:=0;
repeat;
ind:=ind+1
until (database[ind] ,bal>100.0) or
(ind=100)
This will find the first customer whose
balance is greater than $100, if one exists.
The case statement consists of an ex-
pression, known as the selector, and a list
of statements, each labelled by one or more
constants of the type of the selector. The
statements whose constant is equal to the
current value of the selector is executed.
Some versions of PASCAL admit subranges
for labels and an else or otherwise clause
within a case statement.
case databaselind] .datedue.mo of
jan,feb,may: <statement 1>;
mar,jun,jul: <statement 2>;
oct.dec: <statement 3>
end
Statement 1 will be executed if the due
month is January, February, or May, and so
on. Notice that no statement is executed
if the month is April, August, September,
or November. Of course, the nesting of such
control statements is permissible and allows
much more complex control structures to
be implemented.
The reset and rewrite statements initialize
input and output channels, respectively.
Some versions of PASCAL do not require
these for the default channels input and
output. The IO commands are designed at
two levels. To move primitive data to and
from IO devices or files use the commands
84
August 1978 ©BYTE Publications Inc
Rackets or
Racquets?
Software systems from
TSC serve — whether
your racket is business
or pleasure. TSC's
software is designed
for business and
industrial uses as well
as for recreation. Off
the job or at work, TSC
software serves
your needs.
Assembly Language Programs
(Includes Source Listings)
With Object Code Cassette
SL68-5C 6800 Space Voyage $ 1 8.95
SL68-24C 6800 Text Editing System $30.45
SL68-26C 6800 Mnemonic
Assembler $30.45
SL68-29C 6800 Text Processing
System $38.95
With Object Code Paper Tape
SL68-24P 6800 Text Editing System $3 1 .50
SL68-26P 6800 Mnemonic
Assembler
SL68-29P 6800 Text Processing
System
SL80-10P 8080 Text Editing System
SL80-1 IP 8080 Text Processing
System
$31.50
$40.00
$37.50
$41.00
Cassettes are in the Kansas City Standard
format. Many other programs are
available. Send 25C for a complete
catalog.
Technical Systems
Consultants, Inc.
Box 2574
W. Lafayette, Indiana 47906
317-423-5465
Specialists in Software & Hardware for Industry & the Hobbyist
Circle 370 on inquiry card.
To Order: Include 3% postage, $ 1 .00
handling on orders under $10.00, and
Indiana residents add 4% sales tax.
Check your dealer!
TSC Monthly Feature:
8080 Mnemonic Assembler
This is the most complete resident non-macro
assembler available for the 8080 and the com-
plete source listing is included! The assembler is
fully Intel compatible except for logical expression
operators. All standard pseudo-ops are supported
plus features such as paging, titling, spacing,
listing suppression, sorted symbol table, Intel
format tape generation, hex or octal output,
decimal line numbers, auto field formatting, hex,
decimal, octal or binary constants, and more.
5.5K of RAM is required beginning at 1000 hex,
plus source and symbol table space. An object
code paper tape in Intel ASCII format is available.
SL80-12 8080 Mnemonic Assembler $25.00
SL80-12P Assembler with paper tape $34.00
BYTE August 1978 85
EXPR
rOi
-i
FACTOR
-•/variable)
Figure 7: Syntax diagrams for generation of valid expressions. The diagram
"expr" is entered from the left and calls term. Term calls "factor" which may
call expr, etc. This model assumes that the only operations are addition,
subtraction, multiplication and division.
put or get respectively. To input or output
an entire line or set of data we use read,
readln, write, and writeln which arc similar
to FORTRAN 10 commands. Formatting is
done within the commands themselves. The
read command will only input the necessary
information (even if it must read several
lines) while readln additionally discards
the remainder of the current input line. The
output commands, write and writeln,
operate in an analogous fashion for output.
A significant example is now in order.
Consider the problem of compiling an
arithmetic expression. To greatly simplify
the problem, assume all variables are one
letter in length, no constants will appear,
and the only operators will be +, — , *, and
/. To make the problem interesting, assume
that variables lettered a— h and o -z are
of type real and the rest arc of type integer.
This is the same as the implicit types for
FORTRAN. The program will produce
code for a "stack machine." That is, the
operators arc applied only to operands
already on the stack and the result will
replace the operands on the stack. One task
is the recognition of correct expressions.
An expression is an op-
tional sign, a term, fol-
lowed by any number of
addition or subtraction
operators and terms.
This may be done by several methods in-
cluding precedence tables, LALR(1) parsers,
and recursive descent. The latter will be used
since it is the technique employed within
most PASCAL compilers. Recursive descent
compilation utilizes a set of recursive proce-
dures to recognize its input, with no back-
tracking. To understand the algorithm,
consider the series of "syntax diagrams"
in figure I.
To generate a valid expression, for ex-
ample, one enters the diagram from the left,
selects an arbitrary path through the dia-
gram, and exits to the right. Any box en-
countered is to be treated like a subroutine
or procedure call. A circle or box with
rounded edges is to be the current input
item. An expression is thus an optional
sign, a term, followed by any number (in-
cluding zero) of addition or subtraction
operators and terms. Similarly, one can
define a term. These definitions build in
the normal precedence of operators and
correctly handle a unary minus. Notice that
<expr> will call <term>, <term> will
call <factor> and maybe <factor> will
call <expr> again. This would occur when-
ever parentheses were encountered.
A second task to accomplish is to proper-
ly handle the necessary type conversion of
intermediate results. Many textbooks refer
to this problem when discussing syntax
directed translation but few illustrate
"real" solutions. As an example (using the
above assumptions) consider
J + K * x
It is not known that this expression must
have a real value until the X is seen. The
recursive descent phase, independent of
type conversion might translate this to
PUSH J
PUSH K
PUSH X
MUL
ADD
for its equivalent Polish Notation: J KX*+.
However, what is really required is
convert the top of the stack)
PUSHI J
FLOAT
PUSHI K
FLOAT
PUSHR X
MULR
ADDR
where the operators have either "R" or "I"
suffixed to indicate a real or integer opera-
tor, respectively. The suffix for the PUSH
instruction is known as soon as the variable
name is seen. The types for the arithmetic
operators and the insertion of the FLOAT
instructions must be added somewhat after
both operands have been seen; in other
86
August 1978 © BYTE Publications Inc
The PerSci generation of
Diskette Mass Storage Systems
Smarter, Faster, Smaller.
A new generation of advances in diskette
drive technology comes together in PerSci Mass
Storage Systems, the first diskette subsystems
to provide large storage capacity, intelligence
and high speed in as little as 434" of space.
Two Times The Capacity...
New PerSci developments in large disk voice
coil technology reduced to
floppy disk applications
make possible data
densities as high as
34 Mbyte per
diskette side — up
to 2 Mbytes in a two
drive system. When
IBM data format com-
patibility is required,
PerSci Systems
will store 34 Mbyte
per drive.
Microprocessor
Intelligence...
PerSci's highly intelli-
gent microprocessor
based controllers, either
single or double density
versions, include the
PerSci File Management
Firmware. Under controller
direction, the PerSci Mass
Storage Systems are capable
of performing many functions
normally requiring CPU time
and memory, including format-
ting, editing, reinitializing, auto-
matic file and full diskette copy.
7 Times The Speed...
The unique voice coil positioning system of
PerSci diskette drives allows PerSci systems to
access data as much as 7 times faster than com-
petitive systems. A random average seek is
only 33 ms, as fast as many large disk systems.
In Half The Space.
PerSci Systems, one or two
drive models, can be configured
for mounting in a 19" rack or
for table top operation. When
maximum capacity in mini-
mum space is called for, PerSci
offers the "Slimline" system,
only 434" wide. A single or
double density controller can
be mounted in the standard
system chassis or in the host.
Interfaces to major micro-
computers are available and
an RS232 serial interface is
optional.
Get all the most recent
engineering advances
in one smarter, faster,
smaller system at com-
petitive prices from
PerSci, Inc., 12210
Nebraska Avenue,
W Los Angeles, Calif.
90025. (213) 820-3764.
PerSci
Peripherals a
Generation Ahead.
Circle 266 on inquiry card.
BYTE August 1978 87
>>H+B
PUSHR
fl
PLISHR
B
flDDR
»fl,'I
PUSHR
R
PUSHI
I
FLOAT
DIVR
>>I/J
PUSHI
I
PUSHI
J
DIVI
»J+K*X
PUSHI
J
FLOAT
PUSHI
K
FLOAT
PUSHR
X
MULR
HDDR
»CI*J-
<X + M> >/<P+N)
PUSHI
I
PUSHI
J
MULI
FLOAT
PUSHR
X
PUSHI
M
FLOAT
flDDR
SUBR
PUSHR
P
PUSHI
N
FLOAT
flDDR
DIVR
»fl+B*
t
ERROR
>>A*<B+
I
t ERROR
>>I>*B
t ERROR
»ZI
t ERROR
Listing 2: Sample program execution. After outputting a prompt the pro-
gram waits for an expression to be input. It then lists all of the instructions
that would be generated for a compiler code.
words, a fixup must be done. As one alter-
native, this may be accomplished by gener-
ating code in memory and keeping track of
the type attribute of each operand and the
addresses of where the last instruction for
that operand was stored. If a type conver-
sion is required on the first operand (of a
binary operator), all code beyond the saved
address is simply moved up one location and
a FLOAT instruction is inserted. If a type
conversion is required for the second
operand, a FLOAT instruction is added as
the last instruction in the evaluation of the
second operand. [In this paragraph and re-
maining text of the article, words in upper
case refer to listing 7 . . . RGAC/
The program in listing 1 is a solution to
the expression evaluation problem. It is a
direct implementation of the methods
suggested. The main portion of the program
is trivial; it asks for a line of input, calls
procedure EXPR to parse the line, lists the
output if there is no error, and repeats the
process.
The type statements are important and
quite varied. See that the constant MAXPC
defines the maximum address space and is
used in the declaration of the subrange
type CODESPACE. The variables ATTR
and LEXTY are symbolic scalar types and
INSTRUCTION is a record type.
The variable CODE is an array of instruc-
tions. This is where the "compiled" code
will reside. The type attribute of the second
operand of an operation is stored in GATTR
which is global to all the program's
procedures.
The procedure SCAN picks up the
next character(s), ignoring spaces and
determines the correct token and type if
it is a variable. Note the use of the case
statement and the sequential nested
conditionals.
The procedure ERROR outputs a line
with an upward pointing arrow to indicate
where the error occurred.
The procedures GENCODE and LIST-
CODE are responsible for encoding the
instructions into the code array and decod-
ing the code array for output respectively.
The with statements simplify both the
PASCAL and compiled codes.
Any discrepancy in types of operands
is resolved by FIXUP which inserts the code
for the operator itself. In a full compiler,
FIXUP would also worry about strings and
other data types and issue the appropriate
error messages when needed.
EXPR does most of the work, together
with the procedures TERM and FACTOR.
They function exactly as described above.
They are quite simple in appearance but
function correctly as the sample runs illus-
trate. The symbolic scalars ADDOP and
MULOP are quite useful in this design.
When properly segmented, any program
should be similarly constructed and as easy
to read or modify. A lot may be gained from
using a top down design. Given the time,
anyone could stretch this program into a
full compiler whose output was a similar
Polish code, and alternatively encode this
program into their favorite assembly lan-
guage. All the hard work has really been
done in expressing the algorithm to solve
the problem.
I heartily recommend that anyone
seriously interested in PASCAL in partic-
ular and good programming style in general
obtain the two books listed in the
bibliography."
BIBLIOGRAPHY
• Jensen, Kathleen and Wirth, Niklaus, Pascal:
User Manual and Report, Springer Study
Edition (2nd Edition), Springer-Verlag,
175 Fifth Av, New York NY 10010, 1975.
• Wirth, Niklaus, Algorithms * Data Structures =
Programs, Prentice-Hall, Englewood Cliffs NJ
07632, 1976.
88
August 1978 ©BYTE Publications Inc
Consistency — or a Lack Thereof.
Notes by C Helmers
//) this issue readers will note a lack
of consistency In the typography of
various articles on Pascal. One fairly
obvious example of this is the use of all
upper case and the use of normal English
capitalization of the name of the lan-
guage. Since Pascal is derived from a
proper name, the proper notation is
lower case with initial capitalization.
For names which are acronyms, like
FORTRAN, COBOL, PL/I, etc, the
upper case notation is appropriate. While
we strove for consistency within a given
article, at least one article used upper
case notation for the name Pascal,
showing the extreme inertia of tradition-
alism at a point when it was too late to
make the changes to final copy.
The second area of questionable
typography is a bit more nebulous and
less subject to editorial fiat when
"camera ready" type is received from
authors: the style of representation of
Pascal program listings. The ideal style
is of course that used by Niklaus Wirth
in his book Algorithms+Data Structures=
Programs, published by Prentice-Hall in
19 76. This style uses bold face type in
lower case for representation of the
Pascal language keywords. It uses italics
for the representation of specific variable
names, procedure names and literal
values which are part of the program. In
articles by authors Ken Bowles (page
122), Charles Forsyth and Randall
Howard (page 50), Chip Weems (page
143), and Allan Schwartz (page 168) this
notation was used. But in two of these
cases, the authors supplied camera ready
typeset copy along with the articles in-
volved, in order to minimize potential
errors due to keystroking. Since two of
these were typeset at BYTE, and the
other two were typeset with different
type specifications on different
machines, there is naturally a different
aesthetic flavor to the listings in these
articles. A close variant of this form is
seen in the listings of David Mundie's
article (page 110) where bold face type
and normal type are mixed in the
listing.
There is yet another variation on the
graphics used to represent Pascal pro-
grams, provided by the listings accom-
panying Stephen Alpert's article (page
78). Here, the camera ready listing was
supplied by the author as printed on an
upper case line printer, so keywords are
indistinguishable from program details
on the basis of typography alone.
What can we conclude about this
inconsistency? Our goal at BYTE from
now on will be to asymptotically
approach the notation of Pascal pro-
grams in the bold face and italic form
whenever we do the actual typesetting
of a listing. The italic and the bold face
typography provides an excellent con-
trast to normal type when elements of a
program are mentioned within text. But
when a manuscript comes with a usable
camera ready listing of a Pascal program,
such details of aesthetics must take
second place to the goal of minimizing
errors of transcription: it is far better to
use a camera ready image derived from
a machine produced listing than to key
in a program manually in order to create
a typeset form of the listing. Like pro-
gramming, execution of a magazine
production task once a month is fraught
with myriad details. . .CH
THERMAL PRINTER
MANUFACTURED BY TEXAS INSTRUMENTS
• 12 character/line
• 5 x 7 dot matrix
• Alphanumeric capability
• Weighs 6 ounces
• Measures 2 3 / 4 " x 3%" x 2Vt"
• Uses 2 Vi inch thermal paper
$39.95
The T159 calculator magnetic card
reader is now available from Bootstrap
as a stand alone product. The entire
assembly, as pictured above, includes:
housing, motor, read/write head, cables
and on/off switch. Measuring 2%" x%" x
IV*" and weighing less than two ounces
this unit can be used in portable and
stationary data storage applications.
BOOTSTRAP ENTERPRISES INC.
100 Central Expressway • Suite 500 • Richardson, TX 75080
$79.95
o
1 oo
o
m
^
X
H
c
o
w
73
S
IS
£
u
1 he
1 •
s
\n
&>
!y»
- *
31
1 t/> 5
ill
1 UJ UJ
1 c —
i z S
1 u £
■ « P
10.41
1 s<->
1 C JS
1 CO — i
CD
E
K
z
to
c/>
-a
<
1
ON
o
L.
4)
u
.ts
c
3
1
w CO
c
■c
f-
a
4)
T3
r.
41
c/1
8
X)
S
U
T
£
u
c
°3
£
UJ
■-a
a)
f-
41
T3
o
a.
e
a
3
a
<
>
E
o
UJ
a
U
to
U
a
U
□
□
□
Circle 37 on inquiry card.
August 1978 © BYTE Publications Inc 89
All figures and photos courtesy of The Franklin
Institute, Philadelphia PA 19103.
Philadelphia's
179 ^ear Old Android
Photo I : The 7 79 year old Mai/lardet writing and drawing automaton on dis-
play at The Franklin Institute in Philadelphia.
Charles F Penniman
The Franklin Institute
Philadelphia PA 19103
Cuckoo clocks, computers and dolls with
rolling eyes somehow fascinate us all. The
fascination seems to stem from our delight
that people can make contraptions which do
things by contrivance that are usually done
by living men and beasts. But whatever the
reason for it, we find animated statues in an-
cient China and in the temples of classical
Greece. In Europe, the clockmakers of the
Renaissance often adorned their works with
marvelous moving figures. The famous tower
clocks of Berne and Messina and the remark-
able clock in the Cathedral at Strasbourg are
just a few examples.
For us who live toward the beginning of
the Electronic Age, it is hard to imagine the
excitement that existed in the early years of
mechanism. The automaton at the Franklin
Institute that writes poems and draws pic-
tures dates from those times. In the same
way that they made machines to perform
marvelous and delightful things, we program
computers and build microprocessors to per-
form even more amazing feats. It is much
the same phenomenon.
The Franklin Institute's mechanical lady
dressed in green is one of the most impor-
tant of the small number of androids that
have ever been built with the ability to write
and draw. The first machine with such capa-
bilities was built around 1750 by Friedrich
von Knauss working in Germany, but it
was from Pierre Jaquet-Droz, Jean-Frederic
90 August 1978©BYTE Publications Inc
Leschot, and a succession of their collabo-
rators that the most elegant machines came.
In 1774 they produced their first writing
doll in Neuchatel, Switzerland. The machine
now at The Franklin Institute in Philadelphia
was built about 1805 in London by Henri
Maillardet, an associate of Leschot and
Jaquet-Droz. His automaton is particularly
distinguished by its unusually large memory
and excellent movements.
The Maillardet machine weighs about 250
pounds (113.4 kg) and consists of a figure
kneeling at a writing desk mounted atop an
ornate stand containing the program and
driving mechanism. Information for the
doll's movements is communicated up
through the body of the figure by an in-
credibly intricate combination of levers,
rods, pulleys and cams.
The heart of the writing and drawing
operation is actually a mechanical "read
only memory" in the form of an array of
disk cams rotating on a common shaft to
drive the right hand of the figure. The cams
are driven by a spring motor located at one
end of the base that is coordinated with a
second motor located at the other end of the
base. This motor is used to slide the stack of
operating cams transversely on their shaft
into the proper position to produce the
desired readout. The information contained
in the undulations of the selected set of cam
surfaces is picked up by three cam followers
linked to the doll's hand to produce the re-
quired right and left, up and down, and ver-
tical motions. There are seven programmed
designs from which to choose: two poems in
French, one in English, and three graceful
pictures. Two designs require four sets of
three cams each; the remaining designs are
each on three sets of cams. This adds up to a
total of 96 operating cams to govern the mo-
tions of the right hand of the figure. Addi-
tional, and far simpler, cams move the left
hand, head and eyes.
The machine is marvelously complex, but
perhaps the greatest marvel is that it can still
function after nearly 175 years. Apparently
very little wear has taken place. The details
of the drawings are still remarkably sharp
and the writing quite legible. The complex
of linkages between the rotating cams and
the motions of the hand still operate with no
detectable play or slop in the bearings: a
considerable achievement for engineering
and technology. How this was achieved is
largely a matter of conjecture today, but the
automaton was built in an age in which trade
secrets were kept closely within the circle of
one's apprentices and family. It would be in-
teresting, for instance,- to know exactly how
the machine was programmed. One can
speculate that the profiles of the cams were
Figure I : One of the incredible drawings executed by Maillardet '$ writing and
drawing automaton in approximately five minutes. The automaton is cur-
rently on display at The Franklin Institute.
•
1
■ &..' ■Mi £i^H ■
•
•J
>
*■ \\\ \
e/
jp jp* . ■ m^j
Photo 2: Right arm of the automaton, undraped. Modern ballpoint pen Is not
historically correct, but is effective.
August 1978 © BYTE Publications Inc 91
laid out after the doll was constructed by
moving its hand over a master drawing and
tracing the corresponding motions of the
three cam followers on simultaneously ro-
tating disks of brass which were then cut and
filed to their proper shapes. Yet, this is only
a guess. The only thing that we know for
certain in this regard is that the profiling of
the cams had to be done with the greatest
care and precision since there is up to a ten-
fold magnification of any possible error due
to the multiplying effect of the linkage be-
Photo 3: Rear view of the automaton. Cam motion is carried through the
body of the doll and across the shoulders to the right arm by a system of rods,
levers and shafts.
Photo 4: Drive mechanism located below the tabletop. The spring driven mo-
tor for the operating cams is at right. The X, Y and Z cams with the three fol-
lowers are in the center. To the left is the program selection drive motor.
tween the cam followers and the writing
instrument in the doll's hand.
Some of the elaborate and delicate mech-
anisms that Maillardet made were sold to the
wealthy. Occasionally they were comis-
sioned as state gifts. In fact, the only other
doll with the ability to write that can be at-
tributed directly to Henri Maillardet was
made for King George III to give to the
Emperor of China during a period when the
English were attempting to establish favor-
able trade relations with that country. That
machine was programmed to write, in
Chinese, flattering messages to the Emperor.
It made the trip to China successfully and is
reported to be alive and well in a museum in
Peking. However, most of the automata that
were built, including the one at The Franklin
Institute, went into show business and toured
all over Europe. Surviving advertisements at-
test to their popularity. Through newspaper
clippings, the progress of the Philadelphia
machine can be traced from France to Russia
and throughout England until 1850. It is
possible, but not altogether certain, that it
was purchased at about that time by the
great American showman, P T Barnum, for
his American Museum. By some process,
now unclear, it came to be owned by a
Philadelphian, John Penn Brock, whose
grandchildren donated it to The Franklin
Institute. Perhaps it was the fire that de-
stroyed the museum Barnum set up in
Philadelphia that damaged the machine,
but it was indeed a charred mass of wreck-
age when it was delivered to The Franklin
Institute in November of 1928. Although
Maillardet had his automaton originally fit-
ted out as a little boy in court dress, by the
time it came to The Institute, the costume
had been changed to that of a French soldier.
At The Institute, the machine was stored in
one place and then in another until a staff
machinist, Charles Roberts, became inter-
ested in trying to repair it. He was tremen-
dously proud of his success in doing so as,
indeed, he should have been. New clothes
were made, but this time the doll was put
into a dress instead of a boy's suit. The res-
toration of the original motion of dipping a
pen (or perhaps it was a brush) into an ink-
well turned out to be impossible. Roberts
substituted a stylograph pen which has since
been replaced by a totally unhistorical, but
much more convenient, ballpoint pen. And,
of course, it was necessary to make a num-
ber of new parts, but the only significant
alterations made were to the writing instru-
ment and to the sex of the doll.
Tradition in the Brock family had it that
the automaton had been built by Maelzel, a
considerable showman, the inventor of a
metronome, and the builder of a number of
92 August 1978©BYTE Publications Inc
AAicrocomputer Problem Solving Using
PASCAL by Kenneth L Bowles. This book is
designed both for introductory courses in
computer problem solving at the freshman and
sophomore college level, and for individual
self-study. Graphics is stressed in this version
of the book, in many cases borrowing from
the "Turtle Graphics" approach originated
by Seymour Papert of MIT. A complete sin-
gle-user software system based on PASCAL
has been developed at the University of Cali-
fornia at San Diego, where the author is a
professor in the Department of Applied Physics
and Information Science. This system em-
bodies extensions to the standard PASCAL
which include the necessary functions and
procedures for handling graphics and strings.
563 pp. $9.80.
An Introduction to Programming and
Problem Solving With PASCAL by G M
Schneider, S Weingart, and D Perlman. This
book has three major goals:
(1)To introduce all aspects of the pro-
gramming and problem solving process,
including problem specification and
organization, algorithms, coding, de-
bugging, testing, documentation, and
maintenance.
(2) To teach good programming style and
how to produce a high quality finished
product. This is brought out in numer-
ous style examples throughout the text.
(3) To teach the syntax of the PASCAL pro-
gramming language.
PASCAL is used as a vehicle to teach various as-
pects of programming techniques. $12.95.
lASCAL User Manual and Report (Second Edition) by K Jensen
and N Wirth consists of two parts: the User Manual and the Revised Re-
port. The Manual is directed to those who have some familiarity with
computer programming and who wish to get acquainted with the PAS-
CAL language. It is mainly tutorial and includes many helpful examples
to demonstrate the various features of the language. The Report is a
concise reference for both programmers and implementors. It defines
Standard PASCAL, which constitutes a common base between various
implementations of the language. $6.90.
Programming in PASCAL by Peter Grogono. This book is an ex-
cellent introduction to one of the fastest growing programming lan-
guages. The text is arranged as a tutorial containing both examples and
exercises to increase reader proficiency in PASCAL. Besides sections on
procedures and files, there is a chapter on dynamic data structures such
as trees and linked lists. These concepts are put to use in an example
bus service simulation. Other examples range from the Tower of Hanoi
problem to circumscribing a circle about a triangle. Programming in
PASCAL is sure to hold the reader's interest. 359 pp. $9.95.
ttssmsr
5
Storing*
mrxmnmms
Speaking of
PASCAL
The
Design of Well-structured and
Correct Programs by S Alagic and M A Arbib.
This book represents ten years of research in
top-down program design and verification of
program correctness, and demonstrates how
these techniques can be used in day-to-day
programming with PASCAL. An explanation
of control and data structures and many
examples of programs and proof development
are provided. As a programming text, this book
contains an introduction to the language,
provides algorithms which operate on sophis-
ticated data structures, and offers the full
axiomatic definition of PASCAL in terms of
proof rules. To use this book, no particular
mathematical background is necessary beyond
the basic idea of a mathematical proof, al-
though an introductory course in programming
is required. 292 pp. $12.80.
■ITS
DIAL YOUR BANK CARD ORDERS ON OUR TOLL-FREE HOT LINE: 1-800-258-5477.
Name.
The Microcomputer Bookstore
25 Route 101 West
Peterborough, NH 03458
LjMy check enclosed:
Check #:
Amount:
Address.
City
-State-
.Zip.
Signature.
Total
Number of books .
^My card # :.
Expires:_
Postage $.75/book or
$1.00 outside U.S.
Prices subject to change without notice.
Grand Total
Dealer Inquiries Invited.
You may photocopy this page.
Circle 32 on inquiry card.
BYTE August 1978 93
Photo 5: Center follower
at rest on the bar on which
it slides as the cam deck is
positioned laterally. The
undulations of the cams
are also visible.
automata. In his memoirs, P T Barnum
records the purchase of several automata
from him. But after being repaired, the au-
tomaton herself set things right when her
memory was read out. Following the last
N
<H^, /->' '- - "^V/- /#*
Figure 2: An example of the written output of Maillardet's writing and draw-
ing automaton. The French poem is freely translated as: "A child by ladies
adored, 1 1 am throughout all lands, I In good favor with women, /And also their
husbands. " Below the poem in French is the inscription "Written by Maillar-
det's Automaton."
V"'-.'
line of her last poem, the hand continued
to write in its clear but quaint style: "Ecrit
par L' Automate de Maillardet," meaning
"Written by Maillardet's Automaton." With
this clue, locked for nearly 90 years in the
memory of the machine, it was possible to
search out and determine its proper origin.
The one English poem that she knows
how to write (see page 102) is as follows:
Unerring is my hand, tho' small.
May I not add with truth:
I do my best to please you all;
Encourage, then, my youth.
Certainly her hand cannot be as unerring as
it was in 1805. It would be interesting to
have a sample of her writing from that time
to make a comparison. But she still does her
best to please and amaze us."
You May Have Seen Her in Action . . .
In an excellent WGBH NOVA presenta-
tion on "Artificial Intelligence" aired on
public television stations in March 1978, The
Franklin Institute automaton by Maillardet
may have been seen in action by many
readers. (Also seen in action were robots
NEWT and Shakey of contemporary vintage.
The program also featured interviews with
science fiction writer Arthur C Clarke, and
a number of artificial intelligence researchers
regarding the prospects for the near and far
future of smart machine technology.)
94 August 1 978 © BYTE Publications Inc
Get Down to Business
How to Profit From
your Personal
Computer
by Ted G Lewis
If you want to use your personal com-
puter in a profitable manner, and you need
some help planning programming techniques
this book is for you. It contains suggestions
for accounting, payroll handling, inventory
management, and sorting mailing lists. Many
terms and notations are explained. Sample
programs in BASIC, the use of blueprints
to design program structure, and a full
glossary of terms are a few of this book's
special features. 191 pp. $7.95.
Up your OWN
Organization!
by Donald M Dible
— A great handbook on how to start and
finance a new business, this is the most
comprehensive reference we've seen on the
subject. For the programmer-consultant or
the basement homebrewer-tumed-entrepre-
neur, this is your book. It is recommended
in the Bank of America Small Business
Reporter and Changing Times magazines.
372 pp. Available for $14.95 in hardcover.
FUNDAMENTALS
OF
RECORDKEEPING
AND
FINANCE
FOR
THE
SMALL
BUSINESS
Fundamentals of
Recordkeeping and
Finance for the Small
Business
by Robert C Ragan,
CPA,
and Jack Zwick, Ph.D
— Once you have your organization or
business up and running, records must be
kept. What should I keep, and how do I
record them? This book on fundamentals
will give you a helpful start. Section one
deals with maintaining records, protecting
assets, and providing a basis for planning.
Section two provides a starting point for
owner-managers wanting to sharpen their fi-
nancial management skills. 196 pp. $10.00.
Payroll With Cost
Accounting in BASIC
by Lon Poole
and
Mary Borchers
This book includes program listings with
remarks, descriptions, discussion of the
principles of each program, file layouts,
and a complete user's manual with step-by-
step instructions, flowcharts and sample
reports with CRT displays. All 35 programs
are written in the widely used computer
language BASIC, and work together to pro-
duce a payroll, right down to the printing
of paychecks and maintaining of employee
records. $12.50.
BASIC with Business
Applications
by Richard W Lott
This book focuses on the BASIC lan-
guage and its application to specific business
problems. The book is divided into two
sections. Part one introduces the BASIC
language and the concept of logical flow-
charting. Part two presents problems and
possible solutions. Topics include: interest
rate calculation, break-even analysis, loan
rates, and depreciation. Exercises at the end
of each chapter give a greater understanding
of BASIC by actual programming. $10.50.
Financial Analysis
and Business
Decisions on the
Pocket Calculator
by Jon M Smith
This book is designed to aid the experi-
menter in performing applied analysis. It
gives a variety of numerical techniques,
approximations, tables, graphs, and flow-
charts for calculations. All methods have
been optimized for the pocket calculator.
Topics include: calculating present and fu-
ture values, consumer finances, real estate
calculations, business statistics, and systems
analysis. 31 7 pp. $14.95 hardcover.
Charging for
Computer Services
by D Bernard,
J C Emery,
R L Nolan, and
R H Scott
This book is written for managers who
must deal with service charges. This book
provides the manager with principles and
guidelines for a better understanding of the
charge problem. The book provides general
design principles along with specific sug-
gestions to deal with specific problem areas.
Charging for Computer Services is a neces-
sary book for the manager making decisions
in this vital area. 120 pp. $10.00, hardcover.
WRITING
AT WORK:
DOs.DON'Ts,
and
HOWTOs
*
*0*
Writing at Work: Do's
Don't's, and How To's
by Ernst Jacobi
This is not a grammar or usage text. The
goal of this informative book is "to turn
writers into communicators." Addressed to
the educated business or professional person
who can write adequately, this guide is full
of practical advice that will help you make
your writing enjoyable, effective, and suc-
cessful. 198 pp. $7.95.
A Dictionary of
Microcomputing
by Philip E Burton
In the opinion of BYTE's editor, Carl
Helmers, "This is one of the best designed
and executed dictionaries of computer
related terms yet seen on the market. It is
of particular relevance to those individuals
who want a good general reference to
numerous technical terms, broadly covering
hardware and software fields as currently
practiced." $12.50 in hardcover.
BITS
Circle 33 on inquiry card.
For your convenience in ordering, please use this page plus the order form on page 93. You may
photocopy this page. DIAL YOUR CHARGE CARD ORDERS TOLL-FREE 1-800-258-5477.
The Microcomputer Bookstore
25 Route 101 West, Peterborough, NH 03458
BYTE August 1978
95
Antique
Mechanical Computers
Part 2:
18th and 19 th Century Mechanical Marvels
Dr James M Williams
58 Trumbull St
New Haven CT 06510
In the last quarter of the
18th century first a few,
then a flood of automata
began to appear.
In "Part 1: Early Automata," page 48,
July 1978 BYTE, we traced the develop-
ment of antique mechanical computers up to
the middle of the 18th century, and de-
scribed such devices as Vaucanson's mechan-
ical duck. Now we continue with a dis-
cussion of talking, writing and music playing
automata of the 18th and 1 9th centuries.
(The discussion is not meant to be an
exhaustive one, of course, since that would
be beyond the scope of this series.)
Later Automata
Vaucanson's creations blazed across the
scene in Europe 240 years ago, casting new
light into hitherto dark places by showing
what the dedicated mechanician could
achieve. But, even after Vaucanson, the way
was difficult. 38 years passed before a
second flute playing machine was seen, a
seated pair of rustics built by Duchamps in
1776 and said to be capable of playing 13
tunes. 109 years after Vaucanson made the
original mechanical duck, a mechanician
named Rechsteiner, who had restored that
original duck, produced and displayed a
duck of his own. Rechsteiner's duck was the
product of three years of work. It appeared
in 1847 and was the last automaton animal
of note.
In the last quarter of the 18th century,
first a few, then nearly a flood of auto-
mata began to appear, as clockmakers
began to realize not only the possibilities of
their craft but also the splendid prices their
premier work might command. The more
standard automata such as ornamented
clocks, from snuffbox size to prodigies
bigger than steamer trunks, with processions
of moving allegorical figures, spirals, pin-
wheels, and waterfalls, chimes, bells,
dulcimers, whistles, organs, and birdcalls,
continued to be made and sold. Every
titled person had a score of them and men
of substance could own several. The clock-
maker of ambition knew where his challenge
lay. There were mysteries to be created in
machinery, and money and fame to be
had. Mechanicians began to devote them-
selves to duplicating the physical action of
parts of the human body. They chose part-
behavior because of the immense difficulty
of fabricating a mechanism that could
imitate even one of the coordinated acts
humans orchestrate into the continuous
chain of actions; namely, behavior.
It is worth noting that in adults the
discrete units of purposeful action which
seem so integrated and effortless to most of
us are anything but smooth and coordinated
in early childhood. Most people can recall
their clumsiness and exasperation in learning
to tie their shoes or button their garments.
The most intense concentration and dedi-
cated repetition is required to cause these
action patterns to set in our central com-
puting mechanism (see "The Brains of
Men and Machines," parts 1, 2, 3 and 4,
February thru April 1978 BYTE), but
once the setting (ie: learning) takes place
over time, it becomes possible for us to
execute one of these unit actions at will,
devoid of effort and concentration. (The
mechanism and locus of the setting is
obscure: so is other memory storage.
Lately, the cerebellar complex is viewed
as the best candidate for unitary motor
96
August 1978© BYTE Publications Inc
Figure 1: Aquatint etching of the Automaton Exhibition held at Gothic Hall in London in 1836. Various automata
are shown; the one at the far right is evidently Jacquet-Droz's writing and drawing automaton now in the collection
of the Franklin Institute in Philadelphia (see "Philadelphia's 172 Year Old Android" by Charles F Penniman, page
90 in this issue). The figure is shown dressed as a boy, but women's clothes were substituted when the unit was
rebuilt in 1936 at the Institute. Exhibitions like this were relatively common in the 19th century. Engraving cour-
tesy Charles F Penniman.
actions.) We can tie shoelaces behind our
backs, a thing we never practiced or learned.
Even extreme situations, like tying shoelaces
while wearing mittens or hanging by the
knees from a trapeze, do not begin to strain
the capacities of our interior computing
mechanism. The required actions have been
"frozen" into our brains. Not only are they
refractory to disarrangement (they endure
as long as we live) but they are also flexible
enough to permit our adapting them to
novel circumstances. We all possess within
us many thousands of such unitary chunks
of learned behavior, now fully automatized
and playable on command.
This is the part-behavior, smooth, contin-
uous and automatic, that was being imitated
by mechanicians. It requires substantial
storage of program to duplicate. From our
vantage point program storage is the most
important feature these machines possessed.
Consequently, many very beautiful mech-
anisms (the display pieces of Carl Faberge,
jeweler to the Imperial Russian Court;
a wide range of novelties such as sooth-
sayers, magicians and other conjurers,
acrobats and ropewalkers, agile harlequins
and jugglers, automatic confectioners and
wine stewards, and a great many more dis-
play mechanisms) are not mentioned here
because they had little stored programming.
Walking and Running Machines
Early walking and running automata
were represented only by dolls and toys.
They were essentially trivial, programmed
devices for they always very ingeniously
arranged an apparent walking action (only
a simple repetitive motion). The walk
lacked directionality, nor was there pro-
vision for walking on other than smooth
surfaces. It would be difficult to design a
machine to walk in the same sense that
people do: that is, the weight of the trunk is
for a moment supported by one leg alone
while the other leg is being drawn forward
for a next step. Walking is in fact organized
falling, with the mobile extremity brought
forward just in time to forestall disaster.
When you stop to recall that every known
mechanical man actually rolls on wheels,
and that at least three wheels are always
employed to define the plane, you gain a
new respect for human locomotion and a
valuable perspective on the limitations of
mechanisms that undertake to imitate it.
Speaking Machines
As far as I can discover, no programmable
device uttering words, or their approxima-
tions, was ever known before the late
How can one describe
machines so marvelously
devised and tutored in
their tasks that they rival
the actions of human
beings?
August 1978 © BYTE Publications Inc 97
IDS
INTERNATIONAL DATA SYSTEMS, INC.
400 North Washington Street, Suite 200, Falls Church, Virginia 22046 U.S.A.
Telephone (703) 536-7373
88-MODEM: A complete serial I/O port and an Originate/ Answer MODEM on an
St 00 bus compatible board. The 88-MODEM features automatic auto-dialer (not
software timed), operates at any software selected baud rate between 66 and 600
baud, has separate 8-pole transmit and receive active filters, and all functions are
software selected. The 88-MODEM provides communication to -58 dbm and is intended
for use with either a CBS (1001 D) or CBT Data Access Arrangement for connection
to the telephone system. The kit price is $245.00.
88-UFC UNIVERSAL FREQUENCY COUNTER: The 88-UFC is an S100 compatible
Irequency and period measurement module. The 88-UFC has four software selected
inputs. Frequency measurement to above 600MHz and period measurement to 1 /10th
microsecond are standard. The counter provides nine digits of readout and is priced
ai $179.00 in kit form.
88-SPM CLOCK MODULE: The 88-SPM provides a lime of day clock and an inde-
pendent realtime clock on one S100 compatible module. Provisions are included for
battery backup so the 88-SPM can maintain the time during power-off conditions.
$96.00 kit
1001D (Type CBT) Data Access Arrangement $125.00
88-RCB 16 Channel Relay Control Board Kit $179.00
MCTK Morse Code Trainer/Keyer Kit 29.00
TSM Temperature Sensing Module Kit 24.00
DAC-8 8-Bit Digital to Analog Converter Kit 19,00
88-TCXO Temperature Compensated Crystal
Oscillator for 88-UFC 145.00
88-XTAL Crystal Timebase option for 88-SPM 25.00
TERMS: Payment with order shipped prepaid, added for COD. Master Charge accepted
19th century (or even in later periods up to
the time of Bell Labs' Vodor of 1939
World's Fair fame, which required an oper-
ator). Still, some remarkable devices appear
to have existed. Leaving aside the brazen
talking heads that dot Greek and Byzantine
mythology (they were without a doubt
all hoaxes), we learn that the Abbe'Mical
in 1774 was said to have exhibited two talk-
ing heads which he later destroyed. In 1779
Kratzenstein won a prize offered by the
Russian Imperial Academy of Science for
a device that could pronounce distinguish-
able vowels. This device was made from
a set of five specially shaped pipes. Baron
Wolfgang Kempelen, creator of the Great
Chess Automaton, worked for many years
on talking devices, and one was said by
Goethe to be ". . .able to say some childish
words very nicely." The machine was a
kind of bellows, soundbox, artificial tongue
and mouth contrivance that the Baron
manipulated under cover of a cloth; it now
resides in a museum in Munich. Farber
invented a machine which apparently spoke
well enough to induce PT Barnum to pur-
chase it for exhibition, in 1873. The device
was operated by a keyboard.
It is a very curious thing that investiga-
tion of artificial speaking devices was so
neglected by gifted mechanicians, for speech
is the unique achievement of man. Moreover,
the ear is so adaptable and forgiving of
faults in the spoken word that virtually any
kind of squawk might pass for a sentence.
The mechanical problems would have been
very great, but not insuperable.
Writing Machines
Between 1753 and 1760 Friedrich von
Knaus of Darmstadt devised and con-
structed four different machines that wrote
block letters or cursive script according to
programming using a quill pen and ink with
programmed pauses to dip the pen. One
machine produced three texts from three
pens, while the last machine could inscribe
up to 107 letters of preset text from its
stored program or write individual letters
one at a time from dictation under control
of the operator. It may accurately be de-
scribed as the first typewriter or script-
writer. The mechanism appears to have been
a cluster of shaped cams on which rode an
array of cam followers, each one directing
movements of the pen to form a letter.
Text composition was managed by a drum
that bore many rows of holes into which
studs could be placed to activate the
required cam. Thus text was easily altered
by changing the pattern of studs. The tablet,
98
August 1978 © BYTE Publications Inc
Circle 185 on inquiry card.
A Bit of the BASIC
Computer Resource Book— Algebra by
Thomas A Dwyer and Margot Critchfield is
an exciting new way to learn about algebra
and the interesting things you can do with it
using a computer. The book uses the BASIC
language, and flowcharts are used through-
out to show the structure of programs.
There are 60 applications programs inclu-
ding straight line graphs, polynomial equa-
tions, a space probe navigator, temperature
profiles, computer generated animation, the
ultramatic root finder, random number
generation and many more. Although it
is particularly suitable for students, just
about everyone will find some intriguing
and easy to use applications in this enter-
taining book. $4.80.
Basic BASIC by James S Coan. If
you're not already familiar with BASIC,
James Coan's Basic BASIC is one of the
best ways to learn about this popular
computer language. BASIC (which stands
for Beginner's All-purpose Symbolic Instruc-
tion Code) is easy to learn and easy to apply
to many problems. Basic BASIC gives you
step-by-step instructions for using a ter-
minal, writing programs, using loops and
lists, solving mathematical problems, under-
standing matrices and more. The book con-
tains a wealth of illustrations and example
programs, and is suitable for beginners at
many different levels. It makes a fine refer-
ence for the experienced programmer, too.
$7.95.
A Guided Tour of Computer Pro-
gramming in BASIC by Thomas A Dwyer
and Michael S Kaufman. Colorful graphics
abound in this lively introduction to the
BASIC language. The authors have tried
to present a rigorous, yet entertaining
approach to the subject. Written for the
novice, A Guided Tour begins with a
section on how to recognize a computer,
followed by some tips on working at a
terminal. By the end of the book readers
are writing their own programs and solving
elementary problems in finance and busi-
ness. The emphasis throughout is on lear-
ning by doing. Anyone interested in com-
puter programming should benefit from
A Guided Tour of Computer Programming
in BASIC. $4.80.
. .; ■ " «-:
Introduction to Computer Program-
ming by Rudd A Crawford Jr and David H
Copp. Here is an excellent way to learn
about the general aspects of computer pro-
gramming. Introduction to Computer Pro-
gramming makes use of a hypothetical com-
puter model and set of assembly language
instructions designed to help the beginner
see what goes on in computer programs.
The emphasis throughout is on general
principles; such concepts as loops, decisions,
flowcharts and 10 routines are covered in
detail. The book also provides many ex-
ample problems and prompts the reader by
posing several quiz questions. Anyone who
masters its contents will have a solid foun-
dation for the study of practical assembly
and high level languages. It is especially
recommended for students, but just about
everyone new to the subject should profit
from it. $4.35.
advanced
Advanced BASIC by James S Coan.
Advanced BASIC is the companion volume
to James Coan's Basic BASIC. In this book
you'll learn about some of the more ad-
vanced techniques for programming in
BASIC, including string manipulation, the
use of files, plotting on a terminal, simula-
tion and games, advanced mathematical
applications and more. Many useful algor-
ithms are covered, including some clever
sorting techniques designed to reduce
program execution time. As with Basic
BASIC, there are many illustrative example
programs included. BASIC doesn't have to
be basic with Advanced BASIC! $6.95.
m*'
# *
Some Common BASIC Programs by
Lon Poole and Mary Borchers, published by
Adam Osborne and Associates. At last, a
single source for all those hard to find
mathematics programs! Some Common
BASIC Programs combines a diversity of
practical algorithms in one book: matrix
multiplication, regression analysis, principal
on a loan, integration by Simpson's rule,
roots of equations, operations on two vec-
tors, chi-square test, check writer, geometric
mean and variation, coordinate conversion
and a function plotting algorithm. These
are just some of the many programs in-
cluded. For only $7.50 you can buy the
kind of programs previously available only
as part of software math package systems
for large scale computers. All the programs
are written in a restricted BASIC suitable
for most microcomputer BASIC packages,
and have been tested and debugged by the
authors. $8.50.
IITS
DIAL YOUR BANK CARD ORDERS ON OUR TOLL-FREE HOT LINE: 1-800-258-5477.
The Microcomputer Bookstore
25 Route 101 West
Peterborough, NH 03458
I I My check enclosed:
Check #:
Amount:
I I My card # :
Expires:-
Name.
Address.
City
Signature.
-State-
.Zip.
Total
Number of books .
Postage $.75/book or
$1.00 outside U.S.
Grand Total
Prices subject to change without notice.
Dealer Inquiries Invited.
You may photocopy this page.
Circle 34 on inquiry card.
BYTE August 1978 99
16K RAM
Fully Assembled, Tested, ___
Burned-in
Fully Static TMS 4044
250 nsec. chips — $425
Z-80A 4 Mhz. Fast — This fully assembled and tested
1 6K board was designed to operate without wait states
in a 4 Mhz. Z-80A system allowing over-generous time
for CPU board buffers.
450 nsec. chips — $375
For 2 Mhz. Systems — Same circuit as above but
priced lower because of less expensive memory chips.
It is fully assembled, burned-in, tested and guaranteed.
8K Versions Also Available
Both boards available fully assembled with sockets
for all 32 MOS chips but supplied with only 8K of chips.
8K— 250 nsec— $265. 4K chip set— $95. 8K-450
nsec— $235. 4K chip set— $85.
Fully Static Is Best — Both boards use the
state-of-the-art Texas Instruments TMS 4044 which
requires no complicated and critical clocks or refresh.
The fully static memory chip allows a straight-forward,
"clean" design for the board ensuring DMA compatibili-
ty. They use a single 8 volt power supply at 1.8 amps
nominal.
Fully S-100 Bus Compatible — Each 4K addressable
to any 4K slot and separately protected by DIP switches.
Commercial Quality Components — First quality
factory parts, fully socketed, buffered, board masked on
both sides, silk-screened, gold contacts, bus bars for
lower noise.
Guaranteed: USA customers — parts and labor
guaranteed for one full year. You may return undam-
aged board within ten days for full refund (factory orders
only — dealer return policy may vary). Foreign
customers — parts only guaranteed; no return privilege.
Check your local computer store first
Factory Orders — You may phone for VISA, MC,
COD orders. ($3 handling charge for COD orders only)
Purchase orders accepted from recognized institutions.
Personal checks OK but must clear prior to shipment.
Shipped prepaid with cross-country orders sent by air.
Shipping — normally 48-72 hours. Washington resi-
dents add 5.4% tax. Spec, sheet, schematic, warranty
statement sent upon request.
1 Seattle Computer Products, Inc.
^f ^ 1114 Industry Drive, Seattle, WA. 98188
(206) 255-0750
bearing paper, moved one step after inscrip-
tion of each letter. Knaus described his
machines in a 1780 book, Selbstschreibene
Maschine. His machine number 4 was shown
at the Paris Exposition of 1937. It now
resides in the Vienna Technical Museum.
The Automata of Jacquet-Droz and Leschot
How can one describe machines so mar-
velously devised and "tutored" (ie: pro-
grammed) in their tasks that they rival the
actions of human beings proficient in the
art the machine imitates? One can compare
them to humans and the analogy is intrigu-
ing, but humans are born with the necessity
to learn many advanced action patterns and
the automata were able to perform several
advanced action patterns directly after
construction. And humans age and die
while the machines are two centuries old
and act as well as the day they were set
in place. They are seemingly flawless, age-
less, potent and wise. And if you compare
them to spirits you will be very nearly right,
for they are shaped to resemble other-
worldly creatures: cherubs or angels. If the
compactness, beauty and simplicity of their
mechanism with its nearly perfect function-
ing leads you to compare them to fine
watches, you will be very nearly right again,
for their builders were first of all horologists.
They were the family of Jacquet-Droz (two
brothers and a son) and Leschot, their
master mechanician.
Long involved in making elaborate time-
pieces in Geneva, Jacquet-Droz the younger
may well have been influenced by word of
Knaus' writing automaton. The Writer,
Draftsman and Musician he designed and
constructed, were placed on display simul-
taneously in 1774, and they have charmed
every person who has seen them. They are
on display in the Museum of Automata, in
Neuchatel, 30 miles east of Geneva in
western Switzerland. Consider the fact:
here are devices seen and admired today, as
well as by the courts of Louis XV, Louis
XVI, George III, Napoleon and even by
Franklin and Jefferson.
The Writer writes a preset text of 40
letters and spaces in about the same time
and with quite a bit more skill than it
might be written by an 8 year old child.
The Draftsman draws a series of stored
pictures, any one you choose, about as well
as a gifted child of 12 years might do,
while the Musician plays five melodies on
her harmonium, as a musical child of 10
years might do. They have been performing
these feats for 204 years.
100 August I978SBYTE Publications Inc
Circle 313 on inquiry card.
THE FULL POWER OF THE 1 6-BIT TMS 9900 MICROPROCESSOR IS NOW AVAILABLE WITH THE UNIQUE COMBINA-
TION OF RELIABLE HARDWARD AND FAST, EASY TO USE SOFTWARE IN THE TECHNICO SS-16. WITH MINICOMPUTER
PERFORMANCE THE TECHNICO 16-BIT MICROCOMPUTERS ARE AVAILABLE FROM THE SINGLE BOARD SUPER
STARTER SYSTEM AT UNDER $400 TO THE FULL SS-1 6 WITH UP TO 65K BYTES OF MEMORY, MINI-FLOPPY OR
FULL FLOPPY DISKS, A 4800 BAUD DIGITAL CASSETTE, 64 COLOR VIDEO BOARD OPTION, RS232 AND 20
MA CURRENT LOOP ALL COMBINED WITH ONE OF THE INDUSTRYS FASTEST BASICS AND A FULL ASSEMBLER, EDITOR,
LINKING LOADER PACKAGE. SYSTEMS ARE AVAILABLE COMPLETELY ASSEMBLED AND TESTED OR IN UNASSEMBLED
TEC-KIT™ FORM. EXPLICIT MANUAL INCLUDED OR AVAILABLE SEPARATELY AT $35. TO LEARN MORE...JUSTTEAR OFF A
PIECE OF THIS AD AND RETURN TO TECHNICO OR CALL OUR HOTLINE 1-800/638-2893 OR YOUR LOCAL DEALER.
EUROPEAN MODELS AVAILABLE THROUGH TECHNICO INTERNATIONAL
TECHNICO
INCORPORATED
9130 RED BRANCH RD
COLUMBIA. MD 21045
PHONE 301 596 4100
TECHNICO
INTERNATIONAL
2442 N LEXINGTON ST
ARLINGTON, VA 22207
PHONE 703-538-4000
TELEX. 64100 SOLIDSTA
DOMESTIC SALES
Circle 372 on inquiry card.
SALES OUTSIDE CONTINENTAL U.S.
BYTE August 1978 101
i t ti
Photo I: Four successive es drawn by the Malllardet machine, showing the
consistency of the mechanical drive system as well as the variations in letter
width that were possible using a quill pen.
Photo 2: Enlargement of
letter y drawn by the
Maillardet writing and
drawing automaton. Each
subdivision of the grid is
1 mm.
The Writer
The Writer is 28 inches (71 cm) tall.
Carved of wood and painted, this automaton
produces "an unusual impression of life"
similar to top quality wax figures. He is
clothed in a flowing robe and is seated on
a Louis XV stool at a mahogany desk. His
right hand, poised an inch above the desk
and writing tablet, holds a short tube in
which a quill pen is fixed. When the mecha-
nism is activated the Writer raises his hand,
swings it laterally, dips his pen into the
inkwell fixed to the right margin of the
desk, shakes the hand twice to clear the
pen of excess ink and pauses. Another
touch on the mechanism and he begins to
write, forming letters with slow, patient
care.
After each letter, the pad of paper moves
to the left by an amount sufficient to leave
space for the next letter, but more for a
wide letter or a capital than for is and Is
and fs. He can write 40 different letters
on two or three lines, and there is pro-
Figure 2: An example of the writing created by Maillardet 's writing and
drawing automaton using a ballpoint pen. "Unerring is my hand tho' small j
May I not add with truth 1 1 do my best to please you all /Encourage then my
Youth. " Courtesy Franklin Institute. (For a more complete discussion of this
automaton, see "Philadelphia's 179 Year Old Android" on page 90.)
gramming for several pen dips. Most re-
markable is the provision for the unit to
vary the pressure of the pen so that the
letters produced are weighted, formed of
thick and thin strokes.
Except for the few levers controlling
movements of the paper tablet, all of the
automaton's mechanism is contained in the
torso, accessible from the back. There are
two parts of the mechanism, and they
interact with each other. The first is a cluster
of letterforming cams on a common shaft,
the cam follower of which rides on a car-
riage that slides on rails so it can cover the
length of the cluster to settle on the rim
of the desired cam. There are actually
three cam followers and three cams provided
for each letter. Two govern movements of
the right arm and the third regulates pen
pressure for varying the stroke width.
The second portion of the mechanism is
the text selector, a disk 4 inches (10 cm)
in diameter at the bottom of the cam cluster
shaft. The rim of the text selector disk is
divided into 40 sectors, or an angular wedge
of 9° per sector. The sectors are not fixed,
but rather slide radially when one of their
40 screws is turned. In this way the radius
of the disk can be varied sector by sector,
giving the appearance of a snaggle toothed
gear. Each sector in turn regulates the posi-
tion of the cam follower carriage (with
its three cam followers) according to where
that sector is set. Thus the text selector disk
selects which set of three cams will be em-
ployed, and the letter those three cams
control is the letter the right arm inscribes.
Changing the text is as easy as turning 40
screws to just the right position. The zero
radius (baseline) position of the text disk
appears to control the pen dipping mecha-
nism, so you can set up as many pen dips
as you wish at the loss of a letter or space
for each one.
Control is handed back and forth be-
tween the text selector disk and the letter
forming cam cluster. Either one or the
other operates at a given moment, but
the text disk is stationary almost all the
time (moving in jumps) whereas the cam
cluster that forms the letters is moving
most of the time (halting only to permit
the text selector to turn to its next position
and choose the next letter). An intriguing
point, for 1774, is that the surfaces of
greatest wear (the three cam follower
bearing points) are apparently jewelled
with ruby so that the high pressures (prob-
ably a 40:1 lever ratio, or more) will cause
minimal wear and distortion of the letter
shapes over time. All this machinery is
said to be quite sensitive to temperature
changes.
1 02 August 1 978 © BYTE Publications Inc
The Microcomputer Bookstore DTTC
25 Route 101 West, Peterborough NH 03458 WLS ^^L ' UP
Best Sellers
*
*
*
*
*
*
— Getting Involved With Your Own Computer by Leslie Solomon and Stanley Veit answers the
questions: "What can small computers do? Which is best for my purposes?" Whether your interest
is business applications, word processing, education, security, etc., this lucid text will bring you in
touch with an exciting new world destined to affect us all. $5.95.
— The Thinking Computer: Mind Inside Matter by Bertram Raphael. Artificial intelligence, or Al,
is the branch of computer science concerned with making computers "smarter." It is a growing,
vital field that is, unfortunately, the subject of much popular misunderstanding. This book is a
lucid introduction to Al that does much to overcome this misunderstanding. With a minimum of
technical jargon, it discusses the capabilities of modern digital computers and how they are being
used in contemporary Al research. It discusses the progress of Al, the goals, and the variety of
current approaches to making the computer more intelligent. $6.95.
The First Book of KIM edited by Jim Butterfield, Stan Ockers, and Eric Rehnke. Attention
KIM users! Here is the book you've been waiting for. In it you'll find a beginner's guide to the
MOS Technology KIM-1 microcomputer as well as an assortment of games including Card Dealer,
Chess Clock, Horse Race, Lunar Lander and Music Box. Also featured are diagnostic and utility
programs for testing both the computer and external equipment (such as cassette recorders), and
chapters on expanding memory and controlling analog devices. 1 76 pp. $8.95.
Periodical Guide for Computerists, January December 1977, by E. Berg Publications. This is a
comprehensive index of all the articles, book reviews, editorials, letters, record reviews, and mis-
cellaneous small inserts and notes from the top 25 magazines in the field. Several thousand articles
are grouped into over 60 subject categories that are listed alphabetically for easy reference. At the
back is an author index, including the major areas of their expertise. An indispensable guide for
anyone in the fields of personal computing, amateur radio, and electronics. 72 pp. $5.00.
— Scientific and Engineering Problem Solving With The Computer by William Ralph Bennett Jr is
one of the most exciting books we've seen in years. Besides teaching BASIC, this lively, lucid book
presents a wealth of imaginative and unusual applications programs taken from many disciplines (A
sample exercise: "Using the algorithm in the text with the pair-correlation matrix from Hamlet,
compute the most probable diagram path which starts with the letter T"). The exercises run the
gamut from random processes to the dynamics of motion, from entropy in language to the Water-
gate problem. You'll discover BASIC applications in lasers and in the Fourier series and the law
(!). In its diversity and elegant style, it ranks with Donald Knuth's works as a milestone in the art
of computing. Hardcover $19.95.
Computer Power and Human Reason by Joseph Weizenbaum. This book is one which should be
purchased or read for several reasons. If you're presently a programmer by trade or skill, you'll see
a philosophy of computer use and abuse propounded. It's genuinely interesting, and definitely
provocative if you reference the storm of letters, counter letters and counter counter letters which
this book produced in the Association for Computing Machinery's SIGART newsletters during
1976. If you're a novice to the field, the tutorial and explanatory chapters of this book, which are
aimed at the layperson, will serve as an excellent background source which is also eminently read-
able. This includes an excellent and low level explanation of what an algorithm is, and how com-
puters go about executing effective algorithms. $5.95.
Praised by many critics as the best books in their field, The Art of Computer Programming,
Volumes I, II and III, are part of a projected seven volume omnibus survey of computer science
now being completed by Donald E Knuth.
Volume I, Fundamental Algorithms, begins with a thorough discussion of the mathematics used
in computer programming, followed by a treatment of information structures, stacks, arrays,
linked lists, dynamic storage allocation, and trees. 634 pp. $21.95.
Volume II, Seminumerical Algorithms, is concerned with random numbers, statistical tests,
random sequences, as well as arithmetic (floating point and multiple precision), polynomials, and
rational arithmetic. 624 pp. $21 .95.
Volume III deals with Searching and Sorting, and as the name implies, the emphasis is on algo-
rithms for sorting, including combinatorial properties of permutations, internal sorting, optimum
sorting, and external sorting. Also included is a section on sequential searching, hashing, digital
searching, and more. 722 pp. $21 .95.
A hypothetical assembly language called MIX was developed by the author to illustrate pro-
gramming examples throughout the series. MIX is easily convertible to other assembly languages.
Professor Knuth writes with style and wit. This classic work belongs on the reference shelf of
everyone seriously interested in computer science.
Getting.^" 1
With Your Own
Compute 1- ,
THE THINKING COMPUTER
Mind Inside Matter
The
First B»»|c«fK'4\
"* J i,«5»'*2. n i'5L
PERIODICAL
GUIDE
FOR
COMPUTERISTS
let Ctimyiittr HoM>r»u
problem-solving
with
the comiMitwr
.»SffHwnnNwuM
COMPUTER
POWER
AND
HUMAN
REASON
FROM JUDGMENT
TO CALCULATION
For your convenience in ordering, please use this page plus the order form on page 99. You may photocopy this page.
DIAL YOUR CHARGE CARD ORDERS TOLL-FREE 1-800-258-5477.
*l
Circle 35 on inquiry card.
BYTE August 1978 103
Photo 3: The Maillardet writing and drawing automaton sans clothes. The
body of the figure is made from strips of brass and wire; the glass floor
reveals the mechanism. A modern pen is shown in the automaton's hand.
Courtesy Franklin Institute.
A point which is obscure to me is that
the letter forming cams are alleged to
operate on a polar coordinate system.
Suppose the letters are formed on X-Y
coordinates. Photo 2 is a greatly magnified
letter superimposed on a grid of 1 mm
lines. Now you can appreciate the delicacy
of the mechanism, for it is clear that a
deviation of ±0.25 mm at any point will
make a very different looking letter. (Inci-
dentally, at a 40:1 lever ratio, a 0.25 mm
movement at the pen is equivalent to
0.00625 mm on the cam face.) Clearly, the
letters as inscribed on paper are well within
this deviation (see photo 1 and figure 2).
The machine is about 30
inches high and represents
a child kneeling before
a desk with pen in hand.
It is capable of tran-
scribing poetry and
drawing intricate figures.
Look how the es from several different
words are exact duplicates: Probably the
deviation is within about a tenth of that
figure (ie: ±0.025 mm).
The mechanism is analog, of course, but
if it were digitalized, the scale applied (reso-
lution) has got to be less than 0.025 mm per
bit, or in a letter of 8 mm height and 4.5
mm width:
0.025
4.5
0.025
320 bits for height
= 180 bits width
A grid of 320 by 180 equals 57,600 points,
which would be the upper margin of the
error. The limit is plus and minus this, so
each letter may be digitalized with 57,600/
(2x2) = 14,400 points. But that is the
amount for each letter, and we have 26 of
them, which is 14,400 x 26 = 374,400.
Adding upper case letters, the proper figure
is 14,400 x 52 = 748,800 bits to digitalize
the entire alphabet within the limits of error
the machine consistently displays. You
may wish to adjust the figures slightly be-
cause not all letters are the size of the y,
and hence do not require as much storage of
information (see photo 2). However, many
letters fall below the line, and the capitals
are larger than all the lower case, so it evens
out. We have not taken account of the
stroke shaping bits, which might require 4 to
6 more increments of information. Alto-
gether, the machine's "read only memory"
has over three quarters of a million 1 bit
bytes stored within it!
The Draftsman was constructed to re-
semble the Writer, and works in practi-
cally the same manner except that the
tablet of paper is fixed, and the arm holds
a pencil instead of a pen. The device moves
under guidance of a cam cluster and draws
designs in segments with pauses while the
mechanism shifts from one cam pair to
the next. During these pauses the Drafts-
man blows a puff of air from his lips to
disperse the graphite debris. I would esti-
mate that there might be 20 or more cam
pairs for each of the four designs (there
are no depth cams) on a slip of paper about
2 by 3 inches (5 by 7.5- cm). The designs
were simplified reproductions of popular
etchings of the age: cupids in chariots being
hauled by butterflies, etc; and the head of
Louis XV. The little Draftsman appears
to have elicited a good deal more excitement
than the Writer, but he was actually easier
to construct, since the builders profited
from their earlier experience with the
Writer and simplified the mechanism.
104
AugliM 1978 ('.'BYTE Publications Inc
Assume that the Draftsman's paper is
50 by 75 mm, that any point on it could
play a part in the design, and that it was
necessary to provide a mechanism that
could discriminate between lines as close
together as 0.5 mm (ie: to a tolerance of
± 0.25 mm). You end up with a grid of
50/0.25 by 75/0.25 = 200 x 300 = 60,000
points that may be encoded. These were
parcelled out among 20 "read only mem-
ory" cams. The total information con-
tained in the machine would be 60 K bits
by 4 designs = 240 K bits. The total in-
formation storage was much less because the
eye can accept more line deviation in a
drawing than in the formation of a letter.
The Musician is the triumph of automata
that counterfeit life. She is 42 inches
(1 .07 m) high, seated at her instrument with
a pleasant expression on her face. Her
clothing is rich satin brocade in the elaborate
style of the period, and her coiffure is
impressive. She consecutively plays five
pieces on her instrument, a curious device
rather like a harmonium but called by some
accounts a flute-organ, suggesting tuned
pipes instead of metal reeds. The keyboard
consists of two arcs of keys, 12 on a side. It
is double arc shaped because the musician's
arms pivot at the elbows (concealed by lace
sleeves on her gown) enabling her to cover
all 12 keys with five fingers. The music, or
most of it, was composed by Jacquet-Droz
the younger, a musician who studied com-
position with Marchal.
She actually fingers the keys that produce
the music! The mechanism to accomplish
this feat consists of a connection for each
digit, and some extremely clever devices
must be employed to enable the arms to
swivel while maintaining continuity for the
digit controlling mechanism. I leave you to
contemplate the delicacy of the arrange-
ments of mechanism that trigger each finger
in the tiny hands, but keep in mind that this
machine is a workhorse; this musician has
been playing music for 200 years.
Her programmed movements arc star-
tlingly lifelike in the accounts. All the
Jacquet-Droz and Leschot automata turn
their heads and move their eyes, but this
automaton also raises her head to look at
the audience, drops her gaze, takes a deep
breath, and starts to play. She turns her
head as she plays and, swaying from side to
side as artists will do, breathes all the while.
At the end of a piece she looks up and seems
to smile, then shyly lowers her gaze, drops
her head, and curtsies.
Other Musicians
In 1784 Maillardet, who was in business
with Jacquet-Droz (fils) in London, intro-
duced a new and improved version of a lady
musician. She played a sort of piano, per-
haps actually a harpsichord, and it is known
that she had 17 or 18 melodies in her
programming. She was lost in 1833 when
sent to St Petersburg together with other
automata.
The Dulcimer Player of Roentgen and
Kintzing first appeared in 1780, and was
said by the magician Robert-Houdin (who
repaired her in 1866) to have been de-
signed to resemble Marie Antoinette and
emulate her skill with the string dulcimer.
This figure is famous for her beauty, and
much praise has been lavished on her musical
skill, for the instrument is clearly a difficult
one to play (and is hardly known in this
country). The mechanism is a cluster of
cams mounted below the figure, concealed
by her gown.
J N Maelzel, mechanician to the Austrian
court and later the proprietor of the Chess
Automaton, personally designed and had
built a life-size Automaton Trumpeter,
which he exhibited beginning in 1808. It
was destroyed in a fire, about 30 years
later. At least two other trumpeters have
existed. What remarkable mechanism they
must have contained, especially in view of
<<*>
Don Lancaster's ingenius design provides software
controllable options including:
• Scrolling * Full performance cursor
• Over 2K on-screen characters with only
3MHz bandwidth
• Variety of line/character formats including
16/32, 16/64 ....even 32/64
• User selectable line lengths
TELL ME MORE! ( ) Send instruction manual for the TVT-6 Kit
with full operational details. $1 enclosed.
( ) SEND FREE CATALOG
Name:
Address: .
. Zip: .
ELECTRONICS, INC. city state: —
DEPT. 8-b, 1020 W.WILSHIRE BLVD., OKLAHOMA CITY, OK 73116 j
Circle 298 on inquiry card.
August 197SOBYTE Publications Inc 105
Note:
A complete biblio-
graphy for this part of
"Antique Mechanical Com-
puters" will appear with
"Part 3: Human and
Machine Action and the
Torres Chess Automaton"
in September 1978 BYTE.
the praise their performances evoked. None
survives.
Maelzel invented and displayed, beginning
in 1804, the Panharmonicon, a compound
musical mechanism which produced the
sounds of flutes, trumpets, drums, cymbals
and triangle, and plucked strings, a menage
then called Turkish music and much favored
by the public. This machine was followed
by his Orchestrion, imitating the sound of
the military band (which had become popu-
lar during the French Revolution). An
improved Panharmonicon, with clarinets,
violins, and violas added, was so well re-
ceived that Maelzel commissioned music
from Dussek, Pleyel, Weigl, and even
Beethoven, whose "Wellington's Victory,"
opus 91, employing the Automaton Trum-
peter as well as the orchestra, had its pre-
miere on December 8 1813, in Vienna.
These devices were the first of the pro-
grammable multiple instrument machines
so popular 75 years later.
A Combination Automaton by Maillardet
It was known that Maillardet, constant
collaborator with the Jacquet-Droz and
Leschot organization, had constructed a
writing and drawing automaton about 1 81 1 ,
which was exhibited in London in 1815,
and was owned by several persons until
1833 when it was sent to St Petersburg
where it disappeared.
Long ago a resident of Philadelphia men-
tioned to a staff member of the Franklin
Institute that his family owned an auto-
maton that drew pictures and wrote poems.
He supposed it to be Maelzel 's work. When
the owner's house was destroyed by fire,
reducing the automaton to a "mass of
cams and wheels," the museum acquired
it, but it took immense patience and care
on the part of the museum restorer, Charles
Roberts, to make the machine completely
whole. In the restoration process the sex of
the automaton was changed. When the time
came to sample the machine's program, it
was found to be Maillardet's missing auto-
maton (see photo 3 in this article and
Charles Penniman's article, "Philadelphia's
172 Year Old Android" in this issue, page
90).
The machine is about 30 inches (76 cm)
high, and represents a child (originally a
little boy, as alluded to in one verse, and in
an 1812 encyclopedia article) kneeling
before a desk and holding, since restoration,
not a brush but a pen. The mechanism is
in the base and consists of a common shaft
holding about 60 cams, each one 6 inches
(1 5 cm) in diameter. The whole is driven by
a pair of powerful spring motors. Three
triplets of cams are devoted to each of the
seven productions of the automaton, except
that the depth cams are minimally em-
ployed. The follower arms, one for each
dimension of the drawing, are jewelled
and move from pair to pair of cams in the
course of one machine cycle (one drawing).
The automaton executes its seven produc-
tions rapidly, completing one in 7 to 8
minutes. This would appear to explain
Maillardet's need to skeletonize the 60
programming cams: they turn rather swiftly
(about 3 mm of linear motion per second)
and at changeover they must be brought
quickly to a halt, then accelerated to work-
ing speed again. Storing all information on
three pairs of large cams per production
would have made grinding the cam faces
much easier, and would have minimized the
effects of wear compared to a small cam.
Shifting to a new program is done by simply
sliding the common shaft laterally to set
up a new triplet of cams.
Maillardet evidently took it as his task to
produce a machine that worked on its pro-
ductions rapidly and casually, perhaps
in the manner of a person inspired. The
sketches are marked more by fluency of
line than by precision, but they are very
sophisticated, as a glance at the ship sketch
will show (see page 91). The poetry is inter-
esting and is done more in the manner of a
design with scriptwriting than writing in
script (see figure 2).
In terms of brute force memory storage,
if each of the points 1 mm apart on an 89 by
1 20 mm paper is to be stored, 1 0,680 points
would be required. But discriminating be-
tween points with an error of no more than
1 mm requires ± 0.5 mm precision, result-
ing in 42,720 points that must be stored on
the three triplets of cams. But this is the
amount of point storage required for one
production. There are seven of them, so the
total storage capacity within the machine is
42,720 x 7 = 299,040 points (with ±0.5 mm
precision). This figure, the digital equivalent
of the analog storage, begins to make the
impressive forest of cams seem more useful.
All of the above speaks about the infor-
mation capacity (in terms of a grid of
points) necessary to encode the designs and
script that our automata can produce by
analog means. The great majority of those
digital data would not be employed in a
display, just as an automaton will not in-
scribe marks on, say, more than 2 percent
of the area of paper available to it. There is
a lot of wasted (unused) space in any charac-
1 06 August 1978 © BYTE Publications Inc
ter generator. For example, most of the
billions of micrograins of silver halide in a
sheet of emulsion are not actually developed
and play no part in a photographic negative.
The same is true of standard character
generator read only memories where the
5 by 7 matrix with its 35 points is the
absolute minimum matrix you can employ
and still produce recognizable, if not particu-
larly legible, alphanumerics. Even so, 50
percent of these bare minimum 35 points
are not utilized for any given character,
hence there is 50 percent waste. Premium
character generator read only memories are
set up to use a great many more points, and
their displays are still manifestly coarse in
structure ("crude" would not be too strong
a word, when you know there is something
much better).
Here we are simply making visible the
difference between analog and digital modes
of storing information. The analog mode is
obviously more economical, for there are
nowhere near 750,000 jiggles in 20 cams.
Next month, we'll conclude with a final
example in this series about antique auto-
mata, the chess playing robot of Torres
(circa 1911) and some philosophical com-
ments on automata."
Circle 31 1 on inquiry card.
COMPUTE YOUR
SAVINGS"
OUR
LIST CASH
PRICE PRICE
999 00 799 00
14900 -12495
74900
699 00
624 95
569 95
644 !
95
S.D. Sales 64K Memory Kit
S.D. Sales Versafloppy
Disk Kit
Vista Mini Floppy —
Assembled
IMS A 1 8080 Kit
IMSAI 8080 Kit with S.D. Sales
Expandoram 32K Kit with
8K of Chips 850°°
Ask About Our Prices on
North Star, Vector Graphic, Cromemco,
Solid State Music, TDL, Mullen.
Quantities Limited. Shipping and Insurance Extra.
Prices Quoted Include Cash Discounts.
Bus....5-IDD,inc.
Address... 7 White Place
Clark, N.J. 07066
Interface... 201-382-1318
BASIC is BASIC is ...
And BASIC does what it should. But if you're ready to step up
from Beginner's All-purpose Symbolic Jnstruction Code, look
at OPUS, the high-level 8080/Z80 language from A.S.I. ...roots
in BASIC, but designed for business applications. OPUS gives
you the capabilities you need, like extended precision, string
handling, and easy formatting. OPUS/TWO takes up where
OPUS/ONE leaves off, allowing subroutines, overlays, and
extended disc file management.
But we didn't stop there. OPUS programs and data are
directly upward-compatible, all the way up through TEMPOS,
A.S.I.'s multi-user, multi-tasking operating system.
Ask your dealer, or contact A.S.I. We'd like to tell you more.
OPUS/ONE $99.00
S.O.S $385.00
OPUS/TWO $195.00
TEMPOS $785.00
□ □
-_== ADMINISTRATIVE SYSTEMS, INC.
IIJ 1642 S. Parker Road, Suite 300
nn Denver, Colorado 80231 (303) 755-9694
ORDER A MANUAL NOW and we'll apply the price
toward your software purchase.
OPUS User's Manual $12.50
S.O.S. Manual Set (includes OPUS Manual) $20.00
TEMPOS Manual Set (includes OPUS Manual) . . $20.00
MASTER CHARGE and VISA accepted.
Add $1.50 per manual (set) for shipping/handling in U.S.
Circle 4 on inquiry card.
August 197SOBYTE Publications Inc 107
EXCITING
That's the word that sums up the dynamic small computer show in New
York that was established last year at the Coliseum. The lecture areas were
filled by interested people, the exhibits were great, the attendance was the
highest of any small computer show in the country.
The big point is that everyone who came went away happy. Accountants,
hobbyists, lawyers, doctors, brokers, retailers, business people, program-
mers, research scientists and just plain homeowners.
The second big point is that we're doing it again. This time, bigger and
better. Top seminars, top exhibits. -^^— ^m^m ^ m ^■^■^h ^hm
Small computers from $500 up, m
software and kits.
Save time.
Get your tickets
in advance by mail.
I
H
NAME
ADDRESS
(please print)
State
Zip
PERSONAL & BUSINESS
SMALL COMPUTER SHOW
78 East 56th Street, New York, N.Y. 10022
I
I
I
City
Send me tickets in advance for Personal & Business Small
Computer Show, Sept. 15-17, 1978, in the New York Coliseum.
(Check One) One Day ($5)_Two Days ($9)^ Three Days ($13)_
Send check or money order (U.S dollars) payable to
Personal & Business Small Computer Show to 78 E. 56th St.,
New York N Y 10022
I
I
I
I
I
108 BYTE August 1978
Circle 267 on inquiry card.
NEW YORK! FREE SEMINARS
Personal & Business Small Computer Show offers the following:
INTRODUCTORY
Introduction to Small Business Systems
Interlacing to the Real World
Introduction to BASIC
Hardware/Sottware/Systems Tutorial
RECREATIONAL APPLICATIONS
Robotics
Music
Computer Games
Art. Graphics & Animation
SOFTWARE
Data Bases & File Handling
Introduction toCP/M
Introduction to PASCAL
Introduction to APL
SBS A New Data Base Manager. Language and Operating System— a Sotlware
Breakthrough that Gives Minicomputer Power to a Micro — lor Business
Applications. Irom Computer Mart of New Jersey
HOUSEHOLD APPLICATIONS
Budget Managemenl
Investment Analysis
PROFESSIONAL APPLICATIONS
Patient & Client Billing
SMALL BUSINESS APPLICATIONS
Text Editing/Word Processing
General Ledger/Ace nts Receivable & Payable
Mailing Lists
EDUCATIONAL APPLICATIONS
Light Pen Graphics
Simulations & Gaming
All seminars run about 50 mins. and are scheduled twice. Write lor daily and hourly schedules, special hotel rates, etc. Lectures subject to change.
NEW YORK! AVAILABLE TUTORIALS
IEEE COMPUTER SOCIETY
Tutorials are offered by the IEEE Computer Society in conjunction with For further information on the technical background required the con-
the show. Each tutorial costs as follows: members, $45; non-members, tent of the tutorials, or the IEEE, write to Dr Daniel R McGly'nn 71 N
$50, and students, $35. Moger Ave., Mt. Kisco, N.Y. 10549
5 TUTORIALS BY SYBEX
Microcomputer Selection— Sept 16
Intro to Microprocessors — Sept 15
Programming Microprocessors — Sept 16
Designing a Microsystem— Sept 16
"Interfacing Techniques — Sept 17
'Prerequisite— Intro to Microprocessors
All Sybex tutorials run for three hours Cost is $29 95 each up to Sepl 8
$35 each at Ihedooi All are given in the Coliseum Show ticket is needed toi
entry Please use coupon tor advance ticket
(For registration and more details write to Sybex. 2020 Milvia. Berkeley. CA
94704) TEL' (415)848-8233
GENERAL ATTENDANCE INFORMATION
The show will occupy the fourth floor of the New York Coliseum located
at 59th St. & Columbus Circle. There is a parking garage in the building
and the site is served by many subway lines and buses.
Visitors from out of town may obtain special hotel rates from our head-
quarters hotel, the Barbizon Plaza, just two blocks from the show.
Singles $44, doubles $52. Identify yourself as attending the show and
request those rates.
Admission to the show at the door is $5.00 per day, per person. Discount
tickets for groups of ten or more available in advance only by mail at $4
per person per day. Enclose check or money order for all ticket orders
payable to Personal & Business Small Computer Show. For further infor-
mation call (212) 753-4920.
PERSONAL Sl BUSINESS SMALL COMPUTER SHOW
rbEASToolHSiHEET
NEW YORK, NY 10022
New York Coliseum
Sept. 15-17, 1978
SHOW HOURS
Sept !5 -icon leap re
Sepl. 16— 10a.m. to8p.m
Sept. 1 7 — noon to 7 p.m.
BYTE August 1978 109
Languages
Fopum
In Praise of PASCAL
David A Mundie
104B Oakhurst Cir
Charlottesville VA 22903
As has been pointed out in these pages
before, personal computing will never
achieve its full potential as long as our
state of the art machines are hobbled down
with a language as far from state of the art
as BASIC is. Some have argued for designing
a special high level language for micro-
processors, but I personally fail to see why
we don't just implement PASCAL and be
done with it. I would like to look briefly
at the language itself and try to explain why
it seems the logical choice to me.
I am an applications programmer with no
theoretical interest in computing whatso-
ever. What I like about PASCAL is not the
theory of its design, though that seems
sound enough, but rather the fact that it
lets me formulate my problems in my own
terms. In PASCAL more than in any other
language I know, I can remain on the ab-
stract, algorithmic level where, as a human
being, I function best. Because of this
pragmatic bias, much of what follows will
be an informal discussion appealing to the
reader's intuitions rather than a technical
demonstration. I shall use BASIC for com-
parative purposes, since it is the tyrant in
the field.
I find PASCAL easy to use because it
allows me to define new data types which
express my data meaningfully. It provides
control structures with which I can express
what I want done to my data clearly and
naturally. PASCAL allows and encourages
me to formulate my thinking in a structured
way. Let us examine these three aspects of
PASCAL in reverse order.
Program Structure
PASCAL is a resolutely structured
language. A PASCAL program is structured
into blocks. Each block bears a heading
which gives it a name and specifies its
parameters. Roughly speaking, a block
consists of a definition part, in which
constants, types, variables, and subroutines
are defined, and an action part, which con-
tains the algorithm of the block. This
rigorous separation of data definition and
algorithm expression is partly responsible,
it seems to me, for the greater legibility of
PASCAL compared to ALGOL.
Subroutines are themselves block struc-
tured and may thus be nested within one
another. This allows the declaration of
"local" variables and subprograms, meaning
that storage may be allocated efficiently;
yet it is easy to guard against unwanted side
effects.
What does all this mean for the practicing
programmer? The answer may perhaps best
be seen in the light of a claim recently re-
peated by David Higgins in the October
1977 BYTE ("Structured Program Design,"
page 146). Higgins presents the now well
established arguments in favor of structured
programming, but goes on to contend that
once a program is designed in a structured
way, using for example Warnier-Orr dia-
grams, "it does not matter what program-
ming language you code it in." This assertion
seems pretty improbable on the face of it,
and if true it would be a powerful argument
against PASCAL. I think that a rapid ex-
amination of two test cases will show it to
be quite unjustified.
Let us take our test cases from the "bug"
program which Higgins uses as his own
example. Higgins would have us break the
program down into three parts, as expressed
in the following Warnier-Orr diagram:
bug program
i begin pro
< games (1 ,
( end progr
rogram
g)
gram
Nothing in the BASIC listing which accom-
panies the article even remotely suggests
this overall algorithm. Look at what we
might have in an equivalent PASCAL
program.
program bug;
begin
beginprogram;
games;
endprogram
end.
Need I point out that to all intents and pur-
poses the PASCAL program is the Warnier-
Orr diagram, with only a few notational
110
August 1978 © BYTE Publications Inc
Circle 143 on inquiry card.
SAVE THE WHALE
The world's best computer may be inside a Sperm Whale's head.
The Sperm Whale has the largest brain of any creature that has ever existed
on our planet. The brain of this 18-meter marine mammal weighs up to 9 kilograms.
It uses echo-location to find giant squid at ocean depths of over 1,000 meters.
More than 13,000 sperm whales are scheduled to be slaughtered this year
by agreement of the International Whaling Commission.
The CONNECTICUT CETACEAN SOCIETY is a small, totally volunteer,
non-profit education and conservation organization dedicated
to seeking the abolition of all whale killing. Any
concerned citizen can help our efforts by sending
name and address and a $10 or more contribution to
CCS, P.O. Box 145, Wethersfield, CT 06109.
There are two mountain peaks
of evolution on planet earth:
on the land, homo sapiens-
human beings; in the sea,
cetaceans- whales, dolphins,
and porpoises.
Drawing bv
Don Situti
Spring into Season
with a BYTE T-shirt
At last! No more wardrobe crises! BYTE T-shirts are here!
Now you have the perfect garb for computer club meetings,
Altair Conventions, playing Shooting Stars and computer
chess. (A pair of trousers from your own closet is suggested
as an addition to the BYTE T-shirt. BITS can't do every-
thing for you.)
BYTE T-shirts are of top quality 10 0% cotton or cotton-
polyester. The original design, by artist Judy Lee Rehling, is
silk-screened in red on white shirts with blue trim on collars
and sleeves, or on blue heather shirts.
BITS, Inc.
70 Main St.
Peterborough NH 03458
Dial charge card orders toll free 1-800-258-5477.
Please send mt
.extra large
-large
.medium
.small
Total enclosed $
Bill MasterCharge No
Bill BankAmericard No..
Name
Address
City
.blue heather
. white with blue trim
and red letters
T-shirts @ $5.50 each
(includes postage and
handling).
Exp. Date
Exp. Date
I
I
Signature.
.State.
-Zip-
I
In unusual cases, processing may exceed 30 days.
Prices shown are subject to change without notice.
Circle 38 on inquiry card.
BYTE August 1978 111
r
BEGIN TURN
ROLL - "I"
(0.11
O
ROLL ■ "2"
(0,11
O
ROLL = "3"
10.1]
=IN J
o
ROLL = "4"
10,1]
o
ROLL - "5"
(0.11
o
ROLL - "6"
(0.11
V
differences such as the replacement of the
brace by the symbols begin and end? Are we
really asked to believe that this one to one
correspondence between the problem and
the program does nothing to simplify the
programming task? On the contrary, it
simplifies matters enormously.
Considerations of space prevent me from
giving the rival BASIC and PASCAL versions
in full. Another striking example is pre-
sented in figure 1 and listings 1 and 2,
which show the Warnier-Orr diagram for the
"turn" subprogram, Higgins' coding of the
subprogram in BASIC, and the PASCAL
ROLLTHE DIE
PLAYER ALREADY HAS A BODY
(0,11
o
PLAYER ALREADY HAS A BODY
10,11
HAS BODY
(0,1)
<
O
V
HAS BODY
10,1)
HAS NECK
(0,11
o
HAS NECK
(0,11
HAS HEAD
(0,1)
2 ANTENNA
10,1)
o
o
HAS HEAD
(0,11
HAS BODY
(0,1)
2 ANTENNA
(0,11
HAS TAIL
10,1)
o
o
HAS BODY
(0,1)
HAS BODY
(0,1)
HAS 6 LEGS
(0,1)
o
o
HAS6 LEGS
(0.1)
HAS BODY
(0,1)
{
■i GIV
{
< GIV
{
■< GIV
{
-I GIV
{■
■J GIV
{
■1 GIV
E PLAYER A BODY
E PLAYER A NECK
E PLAYER A HEAD
E PLAYER AN ANTENNA
E PLAYER A TAIL
E PLAYER 1 LEG
Figure I: Warnier-Orr diagram for subprogram "turn" of the bug program.
This is clear, but note how much bulkier it is than the PASCAL program in
listing 2. The Warnier-Orr diagram won 't even run on a computer.
equivalent. Higgins calls his BASIC coding
"simple and straightforward." Tastes differ
but that is a phrase I would have reserved
for the PASCAL version. Higgins has had to
fake truly structured programming in a
language which fights his efforts every step
of the way, and the results are tortured
and confusing. In contrast, the PASCAL
coding is, once again, a nearly perfect
reflection of the Warnier-Orr diagram, so
much so, in fact, that most PASCAL users
will probably feel, as I do, that the diagrams
are a useless intermediary step, less clear
and bulkier than the program itself. The
intent of the PASCAL program segment is
so transparent that in my opinion it could
almost be understood by a complete pro-
gramming novice.
Before leaving the topic of program struc-
ture, we should perhaps remark that PASCAL
subprograms (procedures and functions)
bear names, not numbers, virtually elimina-
ting the need for the comments which
pepper any well documented BASIC listing.
Furthermore, because PASCAL subprograms
can have parameters, the programmer is
encouraged to use a single subprogram for
a single task. Higgins has written separate
subprograms for each body part, whereas
for a PASCAL user it is virtually impossible
to resist the temptation of passing the
arrays body, neck, head, etc, to a single
procedure "give" as parameters.
Algorithm Expression
Program structure alone does not explain
the relative clarity of the PASCAL listing
in listing 2. We may also use that listing to
illustrate the tools which PASCAL provides
for expressing algorithms.
Logical operators: PASCAL provides the
logical operators (and, or, and not) which
are so painfully lacking in BASIC and with-
out which expressing an algorithm is so
clumsy. The use of the operator and in the
turn subprogram is a good example; or the
reader may want to express "if (x=1 ) or
((y>2)and(z=3)) then. . ." in BASIC.
Conditional statements. PASCAL'S if
structure groups statements with the condi-
tions for their execution. The if statement is
of the form:
if<expression>
then<statement_1 >
else<statement_2>
The expression is evaluated as being either
true or false. If it is true statcment_l is
performed; otherwise statements is per-
formed. Suppose the expression is: X=l.
In English the if statement translates to:
if X equals 1 then perform state-
ment^ ; else perform statement_2.
112 August 1978 © BYTE Publications Inc
PASCAL offers a very flexible case state-
ment which is remotely related to the com-
puted GOTO statement to be found in some
BASICs. It is much more powerful because,
among other things, selector values need
not be contiguous, and actions are grouped
with the conditions for their execution.
A good example of the case statement's
clarity is to be found in the procedure
"turn," where the action taken depends
on the value of roll.
Repetitive statements: BASIC provides
only one repetitive control structure: the
FOR statement. But there are innumerable
situations where we do not know ahead of
time how many times a. given action is to
be repeated. In such cases BASIC users have
two choices. One is to set up a dummy
FOR statement with a jump out of it when
a certain condition is met: whence the
ubiquitous "FOR 1=1 TO 9999" statements
in BASIC programming. This is bad because
it seriously disguises the intention of the
algorithm. One's natural expectation is for
such a loop to be executed 9999 times, but
that is not the case. The other solution is
for the programmer to fake an appropriate
control structure with GOTOs or condi-
tional jumps. That is what Higgins has done
in his program to express the fact that the
computer and the human take turns until
the game is over:
210 REM TURNS (1,T)
220 LET EGAM =
230 GOSUB 390
240 IF EGAM = THEN 230
250 REM END GAME
260 GOSUB 1150
This is no doubt the best one can do in
BASIC, but just consider how much more
elegant the PASCAL version is:
repeat turns until endofgame
This is typical of the way in which
PASCAL'S control structures make al-
gorithm expression a source of joy rather
than a contortionist exercise. In addition to
the repeat statement, PASCAL offers a
while statement for the case when an action
is to be repeated as long as a condition is
true.
Data Definition
Now that we have seen how much easier
it is to express what one wants done to data
in PASCAL than in BASIC, let us turn to
the wonderful data types which PASCAL
makes available for manipulation. Data types
are the programmer's buffer between his
abstract formulation of an algorithm and the
messy realm of bit level details where that
algorithm will eventually be executed.
PASCAL makes defining new types a trivial
task. Once a new data type is defined, it
is in effect indistinguishable from a pre-
defined type and may be used in any way a
predefined type may be. We leave BASIC
behind at this point, since that language
has no facilities for creating new types.
The bug program was too simple to
provide examples of data structuring, so
we shall have to turn elsewhere. Being a
birdwatcher, I shall replace the traditional
"Christmas card list" example by a bird data
bank. I can do no more than skim the sur-
face, so I ask the reader's indulgence if some
of the listings are not fully explained. I
am not trying to teach PASCAL, but merely
to spark intuitions.
PASCAL distinguishes between simple
and structured types. Let us examine each
in turn.
Simple types: These are the basic build-
ing blocks of which any structured type,
no matter how complex, is ultimately com-
posed. In addition to integer, real, and
character types, PASCAL offers two addi-
tional simple types which as far as I'm con-
cerned come close to exhausting the simple
types needed in a general purpose language.
The first is the defined scalar type, and is
defined by simply listing the values which
a variable of the new type may take on.
490 REM TURN SUBROUTINE
500 REM PLAY=1 PLAYERS TURN-PLAY=2;COMPUTERS TURN
510 REM ROLL DIE
520 LET ROLL = FIXd>(((RND(0))*6.0))+l
530 PRINT:"ROLL IS A", ROLL
540 IF ROLL = 1 THEN IF BODY(PLAY) = l THEN GOSUB 690 ELSE;ELSE;
550 IF ROLL = 1 THEN 650
560 IF ROLL = 2 THEN IF BODY(PLAY) = 1 THEN IF NECK(PLAY) = 1 THEN GOSUB 760
570 IF ROLL=2 THEN 650
580 IF ROLL=3 THEN IF BODY(PLAY)=l THEN IF NECK(PLAY)=1
THEN IF HEAD(PLAY)~1 THEN GOSUB 820
590 IF ROLL=3THEN 650
600 IF ROLL = 4 THEN IF HEAD(PLAY)=1 THEN IF ANTE(PLAY) =2
THEN GOSUB 880
610 IF ROLL=4 THEN 650
620 IF ROLL = 5 THEN IF BODY(PLAY)=l THEN IF TAIL(PLAY)-1 THEN GOSUB 940
630 IF ROLL=5 THEN 650
640 IF ROLL = 6 THEN IF BODY(PLAY) = l THEN IF LEGS(PLAY)---"6 THEN GOSUB 1000
650 LETA=3
660 RETURN
Listing 1 : BASIC listing for Warnier-Orr diagram in figure 1. This is the best
one can do in BASIC, but is still a far cry from the clarity of the PASCAL
listing.
procedure turn;
begin rol I :=trunc( random (1 1*6)+1 ; writelnl'roll is a'.roll);
case roll of
#1 (then give(body);
= 1 )and(neck[player] #1 ) then give(neck);
= 1 land (head [player] 1=\) then give (head);
= 1 )and(ante[player] =£2) then give(ante);
= 1 )and(tail [player]
= 1 )and(legs[player]
1: if (body [player]
2: if (body [player]
3: if(neck[player]
4: if(head[player]
5.' if (body [player]
6: if (body [player]
end
end;
t*1 ) then giveitail);
7^6) then give(legs)
Listing 2: The PASCAL listing equivalent to listing I. Note the clear affinity
between the listing and the Warnier-Orr diagram. Notice that arrays are in-
dexed using square brackets.
August 1978 © BYTE Publications Inc 113
Suppose I need a data type for the various
habitats in which a bird may appear. In
PASCAL I write:
type h = (ocean, rivers,fields,suburbs,forests,
mountains)
A variable of type h may take on any of
the values listed. This means that while
programming I may continue to think in
terms of habitats, and am not forced to
descend from that abstract level and think
in integers, as I would have to do in BASIC.
This also makes for virtually self-explanatory
programs. Compare "IF HABITAT=3
THEN. . ." with the much more transparent
"if habitat=fields then. . . ."
The second simple data type is the
Boolean, and is extremely useful in pro-
gramming since one is constantly control-
ling program flow with Boolean expressions.
Boolean variables take on the values true
and false. Languages without such variables
must make do with integers, which muddles
things since one's natural expectation is for
integers to count something. The PASCAL
user may simply write "if good then. . .",
which is the way we think; the BASIC
programmer must write "IF GOOD = 1
THEN. . .", which is alien to the way we
think.
A large part of PASCAL'S elegance comes
NORTH STAR BASIC PROGRAMS
HUNDREDS SOLD, EACH SYSTEM COMPLETE ON DISKETTE
READY TO RUN. WORD PROCESSING, NORTH STAR TUTO-
RIAL I, NORTH STAR TUTORIAL II (TEACHES NORTH STAR
BASIC), ACCOUNTS PAYABLE, ACCOUNTS RECEIVABLE,
PAYROLL, GENERAL LEDGER, MEDICAL-PROFESSIONAL,
BILLING, SALTS WITH SALES ANALYSIS AND GROSS PRO-
FIT, INVENTORY, HISTOGRAM GENERATOR, COMPUTER
CHESS, MAILING LABELS. $35.00 each.
SOFTWARE LOCATER (LOCATE, INDEX-FREE SOFTWARE),
CHECKBOOK BALANCING, BOWLING-GOLF HANDICAPPER,
COIN COLLECTION INVENTORY, IMPORTANT DOCUMENT
LOCATER, BUDGET PLANNER, GAME DISK. $25.00 each.
IQ TESTER, COMPUTER MEMORY DIAGNOSTIC PERSONAL
FINANCE, BUSINESS FINANCE, BIORHYTHM GENERATOR,
DIET PLANNER, CRYTOGRAPHIC ENCODER, MATH TUTOR,
A SORT UTILITY. $15.00 each.
EQUIPMENT REQUIRED, SINGLE DRIVE, 8K FREE MEMORY,
PRINTER OPTIONAL.
TRS-80 LEVEL I & II (ON CASSETTE) STOCK MARKET ANALYSIS,
GRAPHICS, TREND LINE ANALYSIS, BUSINESS APPLICATIONS. $15.00.
BLANK DISKETTES $3.80 (UNDER TEN ORDERED, ADD $2.00 FOR
SHIPPING; OVER TEN SHIPPED POSTPAID).
CPM COMPATIBLE BASIC PROGRAM LISTINGS ALSO AVAILABLE.
DP
SOFTWARE
DEPT. 11 P. O. BOX 2528
ORANGE, CA 92669
from the fact that in most contexts these
simple or scalar types may be used indif-
ferently. Thus for example the type h as
defined above could be used as the index
variable in a for statement:
for habitat := ocean to mountains do
or in a case statement, or as the index type
of an array :
if foundin [fields] then
Furthermore, functions may return any
scalar type: we have already seen the func-
tion "endofgame" which returns a Boolean
value.
Structured types: In addition to the
simple types, PASCAL offers five different
structuring methods: arrays, records, sets,
files, and pointers. These different methods
may be combined in virtually limitless
ways. One may have files of arrays, pointers
to records, arrays of sets, pointers to files
of arrays of records, and so on. This extreme
flexibility of data structuring methods is
one of PASCAL'S most exciting features.
The type array should be familiar, but let
us look briefly at the other four structured
types.
Sets: Each bird in my hypothetical data
bank has associated with it a set of habitats
in which the bird may be found. Having
defined the type h as above, all I need to do
to set up a variable habitats which will be a
set of different habitats is to write:
vat habitats: set of h
When constructing the entry for the robin,
I will write:
habitats := [fields.suburbs]
thus assigning to the robin the set of habitats
containing the two elements fields and
suburbs. When going on a trip to the moun-
tains, I can test whether mountains are in a
given bird's set of habitats by the following
simple test:
if mountains in habitats then
Imagine trying to do this in BASIC. PASCAL
provides a variety of set operators which
allow set manipulation in all its generality.
Records: Let us imagine that each entry
in my data bank will contain the bird's
name, its length, and a set of habitats where
it may be found. The entry cannot be an
array, since components of arrays must all
be of the same type. The appropriate data
type is the record, defined in PASCAL as
follows:
type bird =
record
name: string;
length: real;
habitats: set of h
end
114 August 1978©BYTE Publications Inc
Circle 6 on inquiry card.
Everything you've ever
wanted to know about
microcomputers in
ONE complete book
for only $10.95
Over 400 pages. Full 8V2" x 11" size.
The ultimate book
about microcomputers.
Written by experts
. . . SCELBI and BYTE. Over
400 pages. A collector's item,
featuring The Basics
from the first 16 issues of BYTE and SCELBI's
classic library of books. Your microcomputer
bookshelf is incomplete without this priceless edition.
You can't buy information
organized like this any-
where. This is the book
that everyone who is into micro-
computers needs for reference,
for ideas, for clues to problem
solving. It is a truly authorita-
tive text, featuring easy-to-read,
easy-to-understand articles by
more than 50 recognized pro-
fessional authors, who know and
love microcomputers from the
ground up. Logical and com-
plete, it features many glos-
saries, and is illuminated with
profuse illustrations and photo-
graphs.
The Scelbi/BYTE Primer is
divided into four logical sec-
tions, that take you from point
"0" through building and pro-
gramming your own computer. . .
step-by-step-by-step.
What can you do with a micro-
computer? Checkbook balanc-
ing. Recipe converting and food
inventory. Heating and air condi-
tioning control. Home and busi-
ness security and management.
Playing the ponies. Analysis of
the stock market. Maintaining
massive data banks. Self-instruc-
tion. Toys and games. Small
business accounting and inven-
tory. And lots, lots more.
Circle 322 on inquiry card.
How does a microcomputer do
it? Lots of "how to" theory. In-
troducing you to microcomputer
operation. 6800, 6502, Z80 CPU
chip capabilities. RAM and ROM
memories. Addressing methods.
VHIIIIUI
BMIHV
Over 400 pages. Selected articles
from BYTE and SCELBI books.
Profusely illustrated. Many
photographs. $10.95, plus$l
shipping and handling.
How to control peripherals.
Transmission of information to
and from computers. Magnetic
recording devices for bulk stor-
age. Analog to digital conver-
sion. How a computer can talk.
Other I/O techniques. And more.
Order your copy today!
SCELBI COMPUTER
CONSULTING INC.
BITS
Post Office Box 133 PP STN
70 Main Street
Dept. B
Peterborough, NH
Milford, CT 06460
03458
1-800-258-5477
Prices shown for North American customers.
Master Charge. Postal and bank Money
Orders preferred. Personal checks delay
shipping up to 4 weeks. Pricing, specifica-
tions, availability subject to change without
notice.
*•"•»«»
All about building a micro-
computer system. Over 12 com-
plete construction articles. Flip-
flops. LED devices. Recycling
used ICs. Modular construction.
Making your own p.c. boards.
Prototype board construction.
Make your own logic probes.
Construction plans for 6800 and
Z80 computers. Building plans
for l/Os — TV and CRT displays,
cassette interfaces, etc. Mathe-
matics functions. ROM program-
mer. Plus much, much more.
How to program a micro-
computer. Programming for the
beginner. Assembling programs
by hand. Monitoring programs.
Number conversions. Game of
Hexpawn. Design your own as-
sembler. Lots more.
And that's only the beginning!
Others have spent millions ac-
quiring the type of microcom-
puter information found within
the 400 pages of The Scelbi/
BYTE Primer. But, it costs you
only $10.95, plus $1 for postage
and handling, complete! You
know the quality of Scelbi and
BYTE. This is your assurance of
excellence throughout this MUST
text. Order your copy today! And,
get one for a friend!
BYTE August 1978 115
This is a simple and logical way of grouping
data of different types into a meaningful
whole. Given variables robin and redbreast
of type bird, a simple assignment statement
will set one equal to the other:
robin := redbreast
To test whether a robin is more than 20 cm
long, we would have:
if robin. Iength>20 then
and so on. These are simple examples, but
they suffice to illustrate the flexibility of
the record type.
Files: Now let us suppose that I have
600 entries of type bird in my data bank,
and want to make a list of all the birds
whose length is greater than 20 cm. It is
pointless and wasteful to keep all 600
records in memory for such a task; all I
really need is to store them in mass storage
and read them in one at a time. In PASCAL
what I do is declare a file of records as
follows:
var fb: file of bird
Now, supposing the file to have been written,
all I need to perform the task is:
reset(fb) ;
repeat if fbt .length>20
then writeln(fbt .name) ; get(fb)
until eof (fb)
Reset positions the File at its beginning; get
advances it one record; fbt is the buffer
variable containing the current record; and
the writeln statement prints the bird's name.
The Boolean function eof tests for the end
of the file.
Pointers: Finally, let us suppose that I
wish to update the data bank by deleting a
bird. It is of course possible to do this by
storing all the records in an array, but this
is clumsy and inefficient, since all the
records following the deleted record would
have to be shifted one position. List proc-
essing provides a much better solution. The
records arc linked together into a list by
inserting a pointer field "next" into each
record. Each record will then "point" to
the record following it in the list. Deleting
Figure 2: A linked list of records of type
"bird" with addition of the pointer field
"next. " Deleting the third record is a simple
mailer of changing a poinici field, as shown
by the dotted line.
a record becomes the simple matter of
changing a single pointer value as illustrated
in figure 2. Given the pointer "current"
pointing to the item just before the one to
be deleted, the following simple statement
will do the trick:
currentt .next := current! .next! .next
Adding a new record is only slightly more
complicated.
Let me repeat that these simple examples
are not meant to do more than provide a
brief glimpse of the marvels of PASCAL'S
structured types. For full explanations
the reader is referred to the texts in the
bibliography.
Conclusion
Rapid though it has been, I hope that this
survey of PASCAL will have brought out
some of the features which make it vastly
superior to BASIC. BASIC offers an ab-
solutely minimal set of features and expects
you either to devise makeshift solutions or
to design a new version of the language
when they are inadequate. No wonder there
are so many different versions of BASIC.
PASCAL offers a somewhat wider selection
of features, but avoids the pitfall of trying to
include every feature known to humanity.
PASCAL is a simple and streamlined
language: the PASCAL Report defining
the language is a mere 32 pages long. Yet
PASCAL'S designers seem to have chosen
just those features which the user needs to
expand the language when the need arises,
so that it is a genuinely general-purpose
language suited to a wide variety of prob-
lems. It is this combination of simplicity
and power which seems to me to make
PASCAL the natural choice for a standard
microprocessor language."
BIBLIOGRAPHY
PASCAL: User Manual and Report, Kathleen
Jensen and Niklaus Wirth, Springer Study
Edition (2nd edition), Springer-Verlag, 175
Fifth Av, New York 10010.
Microprocessor Problem Solving Using PAS-
CAL, Ken Bowles, Springer-Verlag, New York,
1977.
PASCAL News, Andy Mickel, University
Computer Ontsr. 227 Experimental Eng,
208 SE Unior: St, University of Minnesota,
Minneapolis MN 55455.
116
August 1978 ©BYTE Publications Inc
Languages
Fonum
Herbert Yuen
POB 2591 Station A
Champaign IL 61820
Kin-Man Chung
124 Scottswood Dr
Urbana IL 61801
A Proposed
Pascal Compiler
A Note About the Tiny Pascal Project. . .
As this special issue went to press, we had just received the first two
parts of a 3 part series of articles on a Tiny Pascal compiler by Herbert
Yuen and Kin-Man Chung. Watch future BYTEs for this excellent "do
it yourself" project for the software experimenter. . .CH
In the Languages Forum of the April
1978 BYTE, page 150, we read Stephen
Smith's report on his homebrew compiler
project. Actually, he is developing the Pascal
subset compiler on a mainframe computer at
a university and planning to transfer it to a
microcomputer. He said he had a minor
problem with code generation (using 6502
machine code). We think his project might
progress more smoothly if he uses another
approach— that of generating assembly code
for a hypothetical stack machine. This is
the same method professionals use for
implementing portable Pascal compilers on
big computers.
Our own homebrew compiler project was
developed in house on a microcomputer
that uses an 8080 processor and has a North
Star disk system. We began in mid December
of 1977. Our motivation came from the fact
that the North Star disk BASIC, although
very good for general programming pur-
poses, was not fast enough for system soft-
ware development and some graphic games.
For instance, our 8080 assembler, written in
BASIC, takes 1 to 3 seconds to assemble
one single assembly instruction. Assembling
a 500 line program takes about one half
hour. From various sources of information
we know that Pascal is one of the easiest
languages to implement. It also has many
nice features that are desirable in a high level
language.
The Pascal subset is small, otherwise it
would be very difficult to develop using a
BASIC interpreter. All variables in the
subset arc 1 6 bit integers. Arrays are single
dimensional. Character strings are declared
as arrays and each character takes one array
element; although wasting space, this is easy
to implement. Procedures and functions may
be recursive. Variables and constant,
except arrays, can be passed as arguments
to procedures and functions. Language state-
ments include declaration, assignment,
BEGIN-END, IF-THEN-ELSE, WHILE-DO,
REPEAT-UNTIL, FOR-TO/DOWNTO-DO,
CASE-OF-ELSE. The subset is big enough
to provide useful features. The Pascal
compiler can be written in the subset with-
out much difficulty.
The actual coding of the compiler (in
BASIC) began in January 1978. The com-
piler generates P-code for a hypothetical
stack machine, the same one described in
Wirth's book, Algorithm + Data Structure =
Programs. (P-code is the intermediate code
generated by the Pascal compiler. It is the
machine language of a hypothetical Pascal
oritented computer. Use of P-code makes
the Pascal language portable since only a
P-code interpreter needs to be written for a
particular processor. This saves the user
from writing the entire compiler for each
individual machine.) Several instructions and
input/output (IO) capabilities have been
added. At the same time, an interpreter was
also written (in BASIC) to execute and
debug the P-code. It helps to verify the
correctness of the codes generated by the
compiler. In late January, after most parts
of the two programs had been debugged,
we began to design a run time support
package in 8080 assembly language and also
a translator thai translates P-codc to 8080
machine code. With the debug package and
Continued on page 155
August 1978 © BYTE Publications Inc 117
Event Cueoe
August 7-9, Knowing and Understanding
Computer Graphics, Toronto CANADA.
This 3 day intensive seminar will cover
all aspects of computer graphics, demon-
strating how effectively and economic-
ally they may be incorporated into the
business community. Contact Robert
Sanzo, Frost & Sullivan Inc, 106 Fulton
St, New York NY 10038, (212)
233-1080.
August 7-9, Project Management for
Computer Systems, Houston TX. This 3
day seminar will illustrate techniques for
planning, implementing, installing and
controlling projects. Specific examples
and case studies will be discussed. This
seminar is intended for computer proj-
ect managers, data processing managers,
VPs of administration, financial man-
agers and others involved in EDP systems
development and implementation. Con-
tact the University of Chicago, Center
for Continuing Education, 1307 E 60th
St, Chicago IL 60637.
August 7-9, Third Jerusalem Conference
on Information, Jerusalem ISRAEL.
The conference will cover a broad range
of topics on computing applications,
science and technology. Primary empha-
sis will be on the role of computers in
the transfer of technology between large
and small countries. Contact Robert W
Rector, executive director, AFIPS, 210
Summit Av, Montvale NJ 07645,(201)
391-9810.
August 7-9, Laser Beam Information
Systems, Minneapolis MN. This sem-
inar will cover the growing applica-
tion of laser technology in image and
data manipulation in the form of scan-
ning, transmission, reproduction and
control. The principles and practice of
laser beam information systems will be
covered in preparation for direct appli-
cation to such fields as facsimile, com-
puter memory and display, target
identification, reconnaissance, photo-
composition and image manipulation.
Contact Philip M Nowlen, program
chairman, director, Center for Con-
tinuing Education, the University of
Chicago, 1307 E 60th St, Chicago IL
60637.
August 8-10, Management Information
Systems, Lehigh University, Bethlehem
PA. The major objectives of this seminar
are to prepare a user manager to better
understand and communicate with data
processing specialists during the feasibil-
ity study, design, conversion, implemen-
tation and evaluation of an information
S-100 BUS COMPATIBLE. The EMM 1104 single card plug-in memory has
been field tested and proven in a variety of systems including the Poly 88,
TMSAI, MITS, COMPAL-80, TLD and CREMENCO. 16K BYTES ON A CARD.
Convenient plug-in card, fully burned-in, tested and guaranteed by one of
the industry's largest memory suppliers. NMOS STATIC RAM. The 4K
static RAMs have been proven in applications ranging from single chip
memories to IBM 370 add-on systems. They are fast,
reliable, and no refresh cycle is required.
See your dealer, or contact us for complete information.
S-100 Bus Compatible Memory
16K bytes on a card
NMOS static RAM
Commercial Memory Products, a Division of Electronic Memories
12621 Chadron Avenue • Hawthorne, California 90250 • Telephone (213) 644-9881
system and to equip the manager with
sufficient data processing knowledge to
identify potential areas for computeriza-
tion and/or to improve existing systems.
Contact Faith Newhall, Administrative
Assistant, Industrial Engineering Depart-
ment, Packard Lab #19, Lehigh Univer-
sity, Bethlehem PA 18015, (215) 691-
7000 ext 385.
August 7-11, Coding and Information
Theory, University of Toronto CAN-
ADA. This course will present the funda-
mentals of representation, storage and
transmission of data. Protection against
storage and transmission errors using
error detection and error correcting
(including Hamming) codes will be de-
veloped. Efficiency enhancement
through information compressing codes,
predictive run encoding and Markov
chains (probabilistic finite state ma-
chines) will be discussed. Contact Short
Course Program Office, 6266 Boelter
Hall, UCLA Extension, Los Angeles CA
90024,(213) 825-3344 or 825-1 295.
August 15-17, In-house Development of
Data Processing Documentation and Pro-
cedures Manuals, Lehigh University,
Bethlehem PA. This workshop seminar
is designed for DP personnel of com-
puter centers who wish to revise or
develop a DP documentation and pro-
cedures manual. The seminar will allow
the individual participants to interact
with the lecturers and other participants
about their specific problem areas. Some
of the program topics will include docu-
mentation principles and practice, DP
documentation and procedures manual,
definition of procedures, the systems
development process. Contact Faith
Newhall, administrative assistant,
Industrial Engineering Department,
Packard Lab #19, Lehigh University,
Bethlehem PA 18015, (215) 691-7000
ext 385.
August 21-25, Digital Filters, UCLA.
This course will provide a practical intro-
duction to the subject of digital filters.
Topics will include the frequency ap-
proach, Fourier series and integrals, non-
recursive filter design, theory of recursive
filter design, discrete Fourier transforms,
fast Fourier transform implementation,
estimation of power spectra and non-
linear phenomena due to quantizing
signals. This course will be of interest to
those who use linear combinations of
data. The emphasis is on its basic nature
and practicability. Contact Nonie
Watanabe, Short Courses, 6266 Boelter
Hall, UCLA Extension, Los Angeles CA
90024.
August 21-26, Three Short Courses for
Engineers, Computer Scientists and Indi-
viduals Interested in the Areas of Micro-
computers and Digital Electronics,
Trenton State College, Trenton NJ. The
courses are: assembly language program-
ming and interfacing for the 8080/8085/
Z-80 microprocessor, programming in
BASIC for the microcomputer owner,
and microcomputer digital logic circuits.
Each of the courses will cover approxi-
118 August 1978 © BYTE Publications Inc
Circle 132 on inquiry card.
mately the same ground as a normal 1
semester college course and will be pre-
sented in the form of an intensive, fully
documented lecture coupled with labo-
ratory sessions. Contact The Division
of Continuing and Adult Education,
Trenton State College, Trenton NJ,
08625,(609) 771-2255.
August 21 -September 2, Courses on
Microcomputer Interfacing and Analog
Signal Conditioning, Virginia Polytech-
nic Institute and State University. The
objective of these programs is to provide
an educational experience for scientists,
engineers, teachers, managers or tech-
nicians in the areas of microcomputer
data acquisition, instrumentation, and
measurement systems ranging from the
analog sensor through the analog data
channels to the microcomputer. The
courses provide a combined lecture and
laboratory experience. Continuing edu-
cation units are provided for each
course. Contact Dr Linda Leffel, Center
for Continuing Education, Virginia Poly-
technic Institute and State University,
Blacksburg VA 24061, (303) 951-5241.
August 24-27, PC '78, Philadelphia
Civic Center, Philadelphia PA. The
first day of PC '78 (August 24) will
be an industry trade show which is
open to dealers, the industry and ex-
hibitors' guests. For the remaining
three days the full Personal Computing
Show and Personal Computing College
will be running. Over 80 hours of free
seminars are planned. Contact John H
Dilks III, Rt 1, POB 242 (Warf Rd),
Mays Landing NJ 08330.
August 29-31, Data Processing Opera-
tions Management, New York NY. This
seminar will offer the senior data proc-
essing professional an opportunity to
gather the latest management skills. The
curriculum is designed toward practical,
applied data processing management
techniques. Contact Philip M Nowlen,
program chairman, director, Center for
Continuing Education, University of
Chicago, 1307 E 60th St, Chicago IL
60637.
September 6-8, COMPCON Fall '78,
Capitol Hilton Hotel, Washington DC.
Sponsored by the IEEE Computer
Society, this conference will cover
computers and communications, inter-
faces and interactions. Such topics as
microprocessors in communications,
multiple computer systems, advances in
communications technology and many
others will be discussed at this confer-
ence. Contact Kenneth H Crandall Jr,
COMPCON Fall '78, POB 639, Sil-
ver Spring MD 20901.
September 11-15, Coding and Informa-
tion Theory, Georgia Institute of Tech-
nology. See August 7-11, University of
Toronto, for information.
September 12-14, WESCON/78 Show
and Convention, Los Angeles Conven-
tion Center and Los Angeles Bonaven-
ture Hotel. Contact Electronic Conven-
tions Inc, 999 N Sepulveda Blvd, El
Segundo CA 90245, (213) 772-2965.
September 18-22, Digital Filters, Georgia
Institute of Technology. See August
21-25, UCLA, for information.
September 29-October 1, International
Microcomputer Exposition, Dallas Con-
vention Center, Dallas TX. This exposi-
tion will be directed toward all levels of
technology from the professional engin-
eer to the beginning computer hobbyist.
In addition to the seminars, a panel of
experts will be available to answer
questions. Contact Beverly Tanner at
(214) 271-9311.
October 4-6, Knowing and Understand-
ing Computer Graphics, San Francisco
CA. See August 7-9, Toronto.
October 5-8, Midwest Personal Comput-
ing Show, Apparel Center's Expocenter,
Chicago IL. More than 200 displays fea-
turing the full spectrum of the latest
personal computing developments are
expected to be presented by manufac-
turers and distributors. A comprehensive
program of seminars, forums and prac-
tical application clinics will parallel the
four days of exhibits. Contact Midwest
Personal Computing Exposition, ISCM,
222 W Adams St, Chicago IL 60606,
(312) 263-4866.
October 16-19, Information Manage-
ment Exposition and Conference,
McCormick Place, Chicago IL. The
theme, strategic planning in the infor-
mation age, was selected to convey the
need for a corporate strategy for the
gathering, storage, retrieval, dissemina-
tion and management's use of informa-
tion. Computer equipment to be demon-
strated will include large, medium and
small systems, mini and micro systems,
small business systems, terminals, periph-
erals, data communication systems, data
collection and preparation handling sys-
tems, magnetic media and accessories.
Contact Clapp & Poliak Inc, 245 Park
Av, New York NY 10017.
October 24-26, Project Management for
Computer Systems, New York NY. See
August 7-9, Houston, for information.
October 30-November 1, Second Annual
Data Entry Management Association
Conference, Sheraton Harbor Island
Hotel, San Diego CA. The conference
theme is data entry today and tomorrow
and will concentrate on the human side
of data entry and distributed data entry.
There will be a full schedule of seminars,
panel discussions, and workshops includ-
ing hands-on workshops with various
vendors' equipment. Contact Marilyn
Bodek, DEMA, 16E Weavers Hill, Green-
wich CT 06830."
HOLD IT!
Anywhere you
want it.
PanaVise tilts, turns, rotates
One quick turn of the control
knob and you securely position
your work exactly where you
want it. Holds firmly but gently
the most delicate electronic
parts and P. C. boards.
Whether you're into building
home electronics, trouble
shooting, or professional serv-
icing . . . you'll wonder how
you got along without this mod-
estly priced 'extra hand.'
Model 396 Wide Opening PanaVise
shown. An ingenious variety of othe
interchangeable bases, holders and
accessories also available. See you
electronics distributor, or write
for FREE brochure.
1/tSEi
®
Dept. CE1 -'"
5224 Chakemco St., South Gate, CA 90280
Circle 292 on inquiry card.
August 1978 © BYTE Publications Inc 119
Continued from page 10
I see no need for a $20+ kit (eg: Pickles
and Trout TVM-04 mentioned in the
article) when a $.20 resistor will do. I
converted my Philco 9 inch black and
white TV set by providing a jack at the
base of the first video amplifier tran-
sistor and by increasing the value of the
emitter resistor of that stage by 100
ohms to prevent overloading from my
KIM/TVT-6 interface. The resulting
picture is excellent.
Cass R Lewart
12 Georjean Dr
Holmdel NJ 07733
It is a matter of having a product
marketed with coherent step by step
instructions for a specific product. While
your method no doubt works, you
probably have the benefit of personal
experience which gives you the con-
fidence to proceed. . .CH
TRS-80 INTERFACES WANTED
I would like to receive information
and schematics on interfacing a Texas
Instruments 59 calculator and PC-100A
printer to a Radio Shack TRS-80 or
information on where I can obtain a
board for this use.
I would appreciate hearing from any
of your readers who have done this or
may know someone who has. Any help
will be appreciated.
I am also interested in a S-I00 bus
adaptor For the TRS-80.
Tom Swalenberg
541 Barnett Rd
Columbus OH 43213
ASOFTWARE EXCHANGE?
At Coloma (Ml) High School we have
a computer center. In our center we have
eight different microcomputer systems
plus a 3M Model 5500 test scorer. These
systems use four different BASICs as
well as a number of different ways of
storing programs. The BASICs we use
are:
1. PolyMorphic extended version
A00
2. IMSAI CPM system BASIC-E ver-
sion 1.33
3. Altair 8 K BASIC version 4
4. North Star BASIC
The storage systems we use are:
1. Poly 88 Byte Base cassette
recording system
2. IMSAI dual floppy disk system
with CPM
3. Tarbell cassette recording system
4. North Star minifloppy disk system
5. Standard paper tape
We feel that it is necessary to set up a
software library between schools using
microcomputer equipment. This would
give schools a chance to exchange pro-
grams and ideas, and to help other
120 August 1978SBYTE Publications In
Circle 283 on inquiry card.
schools just getting started by sending
them already working programs such as
games, memory tests, and other material.
We can provide programs to any other
schools in any of the above formats and
would be willing to act as a center to
publish all available computer programs
for schools, providing other school sys-
tems are willing to share in this idea and
trade programs. Any interested experi-
menters who have programs to share
with schools are welcome.
Terri Learner
Coloma Computer Center
Coloma High School
Coloma Ml 49038
PET BUG?
Recent PET computers have included
a comment sheet stating that Richard
Duda's Othello program in October
1977 BYTE, page 60, cannot be run
because of excessive subroutine nesting.
This is absurd; the program does not
contain any subroutine nesting. It does
not work as written because PET BASIC
does not allow branches out of FOR
loops. This probably applies to other
versions of Microsoft BASIC as well.
On the PET it appears to be acceptable
to shorten a FOR by setting the index
to its terminal value. At any rate the
following fixes work on my PET and
should work for other computers (such
as Apple II, Radio Shack TRS-80 Level
II, etc) which use Microsoft BASIC.
01820 J=0
01825 FOR J9=1 TO 8
01830 IF C$(J9)=X$THEN J=J9: J9=8
01840 NEXT J9
01850 IF J=0GOTO 1720
02620 F1=0
02630 FOR I1--1 TO 1
02640 FOR J1="1 TO 1
02650 IF All + 11, J+J1)=T2THEN F1"1: J1-1: 11-1
02660 NEXT J1
02670 NEXT 11
02680 RETURN
Delete 02690 thru 02720
This is an excellent program and the
graphics can be easily enhanced to show
off the PET's capabilities in this area.
A Go board with the pieces at the inter-
sections of the lines is easier to use and
more appropriate to the game than a
checker type board. It does require an
8 K machine as written, but probably
could be compressed.
Some of PET's bugs the new owner
should watch out for are that expres-
sions of the form IF NOT X may not
evaluate properly, and executing a DIM
in the middle of a program may clear all
variables to zero. These are real disasters
in connection with the PCC version of
LIFE, for instance.
Incidently, my PET, delivered April
5, is #13,541. It was delivered less than
three weeks after I mailed the order, has
worked flawlessly from the start and is a
superb machine for the price. Docu-
mentation remains less than adequate,
so novices beware.
Mike Hughes
POB 393
Rapid City SD 57709
Hobbiests! Engineers! Technicians! Students!
Write and run machine language programs at home, display video graphics
on your TV set and design microprocessor circuits — the very first
night — even if you've never used a computer before!
II
featuring
RCA COSMAC
microprocessor/mini-
computer
95
Bet "hands on" experience with » computer for just
599.95. Then, once you've mastered computer
fundamentals, expand ELF II with low cost add-ons and
you've got an advanced personal computer powerful
enough to solve business, industrial or scientific
problems.
ELF
byNETRONICS
as featured In
POPULAR ELECTRONICS
shown with optional 4k
Memory Boards, GIANT
BOARD'". Kluge
Board and
ASCII
Keyboard
Learning Breakthrough!
A Short Course On
Microprocessor And
Computer Programming
Written for anyone! Minimal background needed!
Using advanced computers is now as easy as driving a
car with an automatic transmission. We will teach you. step
by step, instruction by instruction, how to use an RCA
COSMAC computer
Not only does our short course explain, cu outers, il
helps anyone write and run programs and solve complex
problems requiring a computer Knowing how a computer
works can help you . . .
(1) Spot situations where a computer can assist you in
business, industry, personal applications, etc; (2) Select the
most economical computer (or microprocessor) and related
hardware for your specific needs; (3) Write and run the
programs you need; and (4) Keep your computer costs down.
This course was written for ELF II users but . . it's a
blockbuster (or every RCA COSMAC user or owner!
SPECIFICATIONS
ELF II features and RCA COSMAC COS /MOS 8-bil
microprocessor addressable to 64k byles wilh DMA.
Interrupt, 16 registers. ALU. 256 byte RAM, full hex
keyboard, iwo digit hex output display, 5 slot plug-in
expansion bus (less connectors), stable crystal clock
for timing purposes and a double-sided,
plated-through PC hoard plus RCA 1861 video IC to
display any segment of memory on a video monitor or
TV screen.
EXPANSION OPTIONS
•ELF II GIANT BOARD™ with casssette I/O.
RS 232-C/TTY I/O. 8-bit P I/O. decoders for 14
separate I/O instructions and a system
monitor /editor. Turns ELF II into the heart of a
full-size system wilh massive computing power!
$39.95 kit.
■ 4k Static RAM. Addressable to any 4k page to 64k.
Uses low power 2102s. Chip select circuit allows
original 256 bytes to be used. Fully buffered.
Onboard 5 voli regulator. $89.95 kit.
• Prototype (Kluge) Board accepts up to 36 I.C.'s
including 40, 24, 22. 18, 16, 14 pin. Space available
for onboard regulator. $17.00.
■ Gold plated 86-pin connector. $5.70.
• ELF II Full ASCII Keyboard. Upper and lower
case. $64.95 kit
• 5 amp Expansion Power Supply. Powers the
entire ELF II (Not required unless adding 4k RAM
boards ) $34 95 kit
All of the above PC boards plug directly into
ELF It's expansion bus.
ELF II TINY BASIC
Communicate with ELF II in BASIC! ELF II Tiny
BASIC is compatible with either ASCII keyboard and
TV screen or standard teletype /video terminal
utilizing RS 232-C or 20 mil TTY interface.
Commands include SAVE and LOAD for storing
programs on standard cassettes, a plot command to
display graphic information and special commands
for controlling ELF II I/O devices. 16-bil integer
arithmetic, + . x. *, 0- 26 variables A-Z. Other
commands include LET. IF/THEN, INPUT. PRINT.
GOTO. GO SUB, RETURN, END. REM, CLEAR.
LIST. RUN. PLOT, PEEK. POKE Comes with
maintenance documentation and excellent user's
manual that allows even beginners lo use ELF II for
sophisticated applications. (4k memory required )
$14.95 on cassette tape.
Coming Soon . . . DA. A-DConverter • Controller
Board • Cabinet • Lighi Pen (Leis you write or draw
anything on a TV screen. Imagine having a "magic
wand" lhai writes like a crayon ! )
Stop reading about computers and get your hands on one. ELF II is an outstanding trainer
for anyone who needs to use a computer to maximize his or her personal effectiveness. Bui ELF II
isn't just a trainer. Expanded, it becomes the heart of a powerful computer system.
For $99.95 You Get All This—
No other small personal computer offers video output and ELF lis expansion capabilities
for anywhere near $99.95. ELF II can create graphics on your TV screen and play electronic
games! It pays for itself over and over again in the fun it provides for your whole family
Engineers and hobbiests can use ELF II in microprocessor-based circuits as a counter, alarm,
lock, thermostat, timer, telephone dialer, etc. The possibilities are endless!
The ELF II Explodes Into A Giant!
Once you've mastered computer fundamentals, ELF II can give you POWER! Plug in the
GIANT BOARD'" and you can record and play back your programs, edit and debug programs.
communicate with remote devices and make things happen in the real world. Add Kluge Board to
solve specific problems such as operating a more complex alarm system or controlling a printing
press. 4k memory units let you write longer programs and solve even more sophisticated
business, industrial, scientific and personal finance problems.
Add ELF II Tiny BASIC And Keyboard!
To make ELF II easier to use. we've developed ELF II Tiny Basic. It lets you program ELF II
with simple words you can type out on a keyboard such as PRINT, RUN and LOAD. ELF II responds
by displaying answers on your printer, video monitor or TV screen.
Write And Run Programs The Very First Night!
The ELF II kit includes all components and everything you need to write and run your own
programs plus the new Pixie Graphics chip that lets you display any 256 byte segment of memory
on a video monitor or TV screen. No wonder ELF II is now being used as a trainer in many high
schools and universities.
Easy instructions get you started right away, even if you've never used a computer before.
The newly expanded ELF II Manual covers assembly, testing, programming, video graphics and
games.
ELF II can be assembled in a single evening and you'll still have time to run programs
including games, video graphics, etc. before going to bed!
riHHMiH SEND TODAY! — — — — —
NETRONICS R&D LTD., Dept. BY-6 (203) 354-9375 I
| 333 Litchfield Road, New Milford, CT 06776
In YES! I want to run programs at home and have enclosed: □ $99.95 plus $3 .
p&h for RCA COSMAC ELF II kit. i ■ $4.95 for power supply, required for ELF II kit. I
D $5.00 for RCA 1802 User's Manual.
I D $4.95 for Short Course on Microprocessor & Computer Programming.
ID ELF II connects to the video input of your TV set. If you prefer to connect ELF II to your
antenna terminals instead, enclose $8.95 for RF Modulator
D $39.95 plus $2 p&h for ELF GIANT BOARD'" kit.
I _ 4k Static RAM kit, $89.95 ea. plus $3 p&h.
■ □ $17.00 plus $1 p&h for Prototype (Kluge) Board.
ID $34.95 plus $2 p&h for Expansion Power Supply kit.
Gold plated 86-pin connectors at $570 ea.
In $64.95 plus $2 p&h for ASCII Keyboard kit
D $14.95 for ELF II Tiny BASIC cassette.
In] want my ELF II wired and tested with the power transformer, RCA 1802 User's
Manual and Short Course on Microprocessor & Computer Programming for $149.95
I plus $3 p&h.
Total enclosed (Conn. res. add tax) $ n Check here if you are enclosing
■ Money Order or Cashier's Check to expedite shipment
NAME
ADDRESS-
i DEALER INQUIRIES INVITED i
Circle 280 on inquiry card.
August 1978 © BYTE Publications Inc 121
Pascal versus COBOL
Where Pascal Gets Down to Business
Ken Bowles
Institute for Information Systems
University of California San Diego
Mail Code C-021
La Jolla CA 92093
With a few important extensions, Pascal
can be an extremely powerful tool for writ-
ing interactive business application programs
on microcomputers and minicomputers.
Pascal provides data structuring facilities
generally superior to those of COBOL, and
its control constructs allow a systematic
and modular approach to program design
that reduces development effort and im-
proves reliability compared with BASIC or
FORTRAN. The extensions needed make
it easy to write interactive programs, use
random access (floppy) disk files, handle
business arithmetic, and recover from error
situations.
A Case Study
In this article we will illustrate the use of
Pascal for a program application one might
find, with variations, in many small busi-
nesses. More general descriptions of the
language are contained elsewhere in BYTE
and in many published introductory text-
books.
The business we have in mind keeps
records of information about transactions
with its customers, and also records con-
taining descriptive information about the
people with whom it deals. The descriptive
records might apply to clients of a law firm,
patients of a medical or dental clinic, sup-
pliers of a hardware store with a large and
diverse stock, houses currently listed by a
real estate firm, users of hardware and soft-
ware products handled by a computer store,
and so on. The transaction records would
describe orders for goods to be sold, de-
liveries, invoices sent, payments, requests
for information, promotional literature sent,
customer property sent out for repairs,
medical tests ordered, etc. Typically each
record in the file of descriptive records
would correspond to many transaction
records. Depending upon circumstances,
the transaction records might be stored in-
termingled with the descriptive records (just
as in the shoe boxes that some small busi-
nesses now use) or in a separate disk file.
They might be stored on the same floppy
disk if the files are small, or they might be
stored on different disks. In any event, we
assume that the number of items in the de-
scriptive file is so large that manual proc-
essing of the transactions information repre-
sents a significant cost to the business for
record keeping. We also assume that the
business is small enough that it cannot
afford to have its own full time data proc-
essing department.
We now consider how Pascal programs
written for a small computer might help in
the operations of a hypothetical small busi-
ness, the Zyx Gizmo Store. With many com-
peting manufacturers producing gizmos, it
is necessary for Zyx to keep track of many
different sizes, shapes, qualities and special-
ized forms of gizmos. Moreover, the buyer
can start with a basic model, later adding
modules to obtain a larger and more sophis-
ticated gizmo. Gizmos require periodic
maintenance and corrective repairs. Zyx
stocks some replacement parts which are
installed in customer's gizmos by the Zyx
repair department or sold to users who do
their own repair work. Some replacement
parts are too expensive to stock locally, and
Zyx must order them from regional distribu-
tors when needed. Gizmos are complicated
enough to use that many users require text-
books or short training courses to under-
stand how to use them. Zyx sells the text-
books and runs periodic training seminars
for which users pay a small fee. Both the
training and repair problems are made com-
plex by the rate at which the technology of
manufacturing gizmos is advancing, as new
models are introduced by the manufacturers
each year. While the similarity of the gizmo
to the microcomputer is easily recognized
122 August 1 978 © BYTE Publications Inc
by many readers, the gizmo model could
apply equally well to technology based de-
vices being sold in many fields today.
We can assume that Zyx is large enough
to employ several salespeople, repair people,
and at least one full time administrative
assistant in addition to the owner of the
company. In general, when a situation arises
requiring communication with a customer,
any one of these people may have occasion
to refer to the filed records on previous
transactions involving that customer. If the
customer telephones to request advice about
an apparently malfunctioning gizmo, the
responding Zyx employee usually needs
information about the make, model, size
and other details describing the customer's
gizmo. If a customer asks Zyx to order an
additional module from a national distribu-
tor, he or she may call Zyx to inquire about
the fate of the order before delivery is ac-
tually completed. If a manufacturer of
modules for gizmos introduces a new line
of devices, Zyx may wish to save on promo-
tion costs by contacting only customers
known to be using gizmos compatible with
that manufacturer's devices. For these and
many other reasons, designated employees
of Zyx should have ready access to records
on the customer's dealings with the firm.
These records make it possible for Zyx to
render a personalized service that probably
is the main reason why customers come
to the Zyx store for their gizmos rather
than to a national or regional distribution
company.
Of course now that low cost microcom-
puters have become moderately powerful,
it is possible, in principle, for Zyx to main-
tain its descriptive and transaction records
on customers in a floppy disk or small hard
disk system. Ideally, the cost of adding a
microcomputer to a small business operation
is only a fraction of the value received, both
in labor costs and in improved customer
relations. Moreover, the company could
use the microcomputer for maintaining its
accounting records, sending bills, keeping
track of inventory and so on. We say ideally
because the effort to write a suite of pro-
grams to access and maintain the necessary
files can be quite substantial if the program-
ming is done in BASIC or FORTRAN (or
assembly language). Using Pascal the effort
should be very much less than the equivalent
effort using BASIC or FORTRAN.
Since COBOL is becoming available
on microcomputers, some comments on
COBOL versus Pascal are appropriate. Here
the principal issue has more to do with the
operating system, within which business pro-
grams written in the language will run, than
with the language comparison. Given reason-
Enjoy an easy way
to program faster,
with fewer errors
Save time, save money, have more fun when you write programs in BASIC
on our new combination Program Coding/CRT Layout Sheets. We engineered
this new programming aid specifically to help people like yourself with pro-
grams in BASIC for personal and small business computers.
If you're using another coding form now, you'll really enjoy the improve-
ments we've designed for you into 78C1. If you use legal pads or the backs
of old envelopes to write your BASIC programs, our new form will give you
a taste of the ease professional programmers enjoy. Our formal coding sheet
helps keep your thinking linear, and makes it easier to remember details
like spacing and punctuation.
8 Unique advantages
1. Gives you 2 form uses for the price of one. When display layout and
line folding points aren't critical, use 78Cl's full 28 line x 80 column grid
area for regular program steps. Then for interactive or instructional sections,
to plan display layouts simply keep your characters within the appropriate
CRT indicator lines, and you'll automatically know where every character
will show on your CRT screen.
2. Gives you 4 extra coding lines on every sheet. Full 28 line x 80 col-
umn coding capacity saves you 14 sheets out of every 100, compared to
24-line forms. 86 sheets hold more program steps than 100 sheets of any
24-line form, yet we offer full-size 6mm x 3mm grid blocks to give you com-
fortable writing room and visual space between lines.
3. Works with your CRT display, no matter what brand you own. Equipped
for both 16 line x 64 column and 24 line x 80 column display formats, 78C1
is compatible with your video terminal.
4. Surface-engineered to take both pen & pencil without blotching. Spe-
cial paper base is pure enough for critical magnetic ink character readers,
although you'll probably never use it that way. We use it to give you crisp,
sharp characters whether you write with pencil or plastic-tip pens. Specific
pen and pencil suggestions for best results are inside each package.
5. Eye-comfortable soft blue grid. All grid rulings, tints, and division
rules are reproduced in a shade of blue easy on your eyes, even after hours
of continuous programming.
6. Bright white sheet makes your characters easy to read. Heavy 22-
pound brilliant white opaque paper gives your writing contrast, makes it easy
to read.
7. 8'.' x 11 size saves you money. . .fits standard binders, folders, &
files. We designed 78C1 to serve professional programmers, hobbyists, and
small business people economically. We engineered it to not only save time
and reduce bugs, but also to fit standard binding and storage supplies. You
can store it in common 3-ring notebooks, file it in regular "letter size" files,
bind it in standard school-supply report covers.
8. Your choice of looseleaf style or 50-sheet pads. Both are 3-hole punch-
ed. Snap looseleaf style sheets into a 3-ring binder, begin writing, and auto-
matically you'll keep your whole program together in proper order. Or if
you prefer, use our 50-sheet pads and rip off each page as you complete
it, for later filing. The choice is yours.
Try a pack today
Ask your local computer store for a package of Stirling/Bekdorf 78C1
today. If they don't have it yet, use the coupon below to get yourself a
trial supply right now.
, 1
YES. Rush me the quantity of 78C1 BASIC Coding/CRT Layout Sheets "
I have indicated below:
Looseleaf Pads
□ 100 = $6.05+ 51.50 shpg. □two50-sht. pads. 56.35 + $1.50 slips
□ 500 = $24 10 + $2.85 slips Dlen 50-sht pads: $26.85 + $2.85 slips
Q Enclosed is my check for $.
DChargeto: □ Master Charge; □ Visa Card §.
Signature
Dealer inquiries welcome
Name
Address .
City
.State.
.Zip.
Stirling/Bekdorf
4407 Porkwood - San Antonio, TX 78218 □ (512) 824-5643
|b8_
Circle 354 on inquiry card.
August 1 978 © BYTE Publications Inc 1 23
YOUR
S-l 00 BUS
NEEDS
FILLED!
* Main Frames
Memory Boards
Disk Systems
Interface Boards
Credit Gash
Card Discount
Price Price
Dynabyte JJBOns 16K RAM (assm.) $ 520. S 800.
Dynabyte Naked Terminal (assm.) $ 328. $ 318.
Cromemco 280ns 16K HAM Kit $464. $446.
Cromemco Bytesaver Kit $ 136. $ 131.
Cromemco Z-8 Computer Kit $ 557. $ 836.
Cromemco Z-8D Computer Kit $1399. (1348.
IMSAIPCS-80/lBKit $ 731 S 703.
IMSAI 8080 Kit with 82-slot M.B. $ 593 $ 870.
IMSAI VIO-C Kit $ 297. $886.
Trace 1 6K Static RAM
(assm. on 38K board) $ 529. $ 809.
Trace 3HK Static BAM (assm.) $883. $849.
North Star Micro Disk System
Kit $ 623. $ 899.
North Star MDS Second drive Kit .. $395. $380.
North Star Horizon 1 computer Kit $1497. $1439.
North Star Horizon Second Drive . . $ 395. $ 380.
North Star Horizon 1 (assm.) $1777. $1709.
8" Floppy Diskettes
(IBM soft-sectored) $ 6. $ 8.80
8" Floppy Diskettes
(North Star format) $4.50 $4.80
TDL ZPU Cassm.) $ 183. $ 176.
TDL D-38 RAM (assm.) $ 769 $ 739.
TDL Software Package A
(with 18K BASIC)
For North Star Disk $228 $ 819.
OnPaperTape $ 186. $ 179.
On TarbeU Cassette $ 168. $ 181.
Lear Slegler ADM-3A Kit write or call for prices
Seals Electronics 8K 280ns RAM
Cassm.) $ 187. $ 180.
George Bisk Model 786 ASC II
Keyboard (assm.) $ 71 $ 68.
Metal Cabinet for Model 786 $ 28. $ 87.
Shipping charges: S10 per CPU on larger units; S1.50 per kit. $2.00 min. per
order.
Delivery is stock to 30 days on most items. Shipment is immediate for pay-
ment by cashier's check, money order or charge card. Allow 3 weeks for
personal checks to clear. W.Y. State residents add approp. sales tax. Avail-
ability, prices and specs may change without notice.
Write or Call
computer
emerpri/e/™
P.O. Box 71
Fayetteville, N.Y. 13066
Phone C31S) 637-6208 Today!
Operating Hours:
M-W10-BE.S.T.
Th-F10-9E.S.T.
Closed Sat. & Sun.
able operating system support of the lan-
guage, no one versed in Pascal would con-
sider backing up to COBOL. COBOL's
principal attraction in the business comput-
ing community has been that it is the most
standardized of all the widely used lan-
guages. COBOL provides facilities for storing
dissimilar types of information mingled to-
gether in transaction records intended to be
stored in off line media like disks and
magnetic tape. Pascal too has very powerful
facilities for storing complex data records,
and its facilities for building complex pro-
grams are far superior to those of COBOL.
Regarding the operating system support,
we'll assume in the rest of this article that
the user's Pascal program is developed under,
and runs within, the UCSD (University of
California at San Diego) Pascal Software
System (see "UCSD Pascal: A Machine Inde-
pendent System," May 1978 BYTE, page
46). This system provides what amount to
language extensions to Pascal which facili-
tate the use of Pascal in writing interactive
business programs. Some of these extensions
will be mentioned at points in the discussion
where they are used in our example. The
accepted informal standard for the Pascal
language, as described by Niklaus Wirth in
his revised report on Pascal (Pascal User
Manual and Report, K Jensen and N Wirth,
Springer Verlag, New York/Heidelberg,
1975), lacks definition of several facilities
that are really essential if the language is to
be convenient for writing business programs.
On the other hand, Pascal provides an ex-
tremely high level from which these facilities
can be added.
Transaction Records
In Pascal, the programmer is required to
declare what type of information will be
stored under the identifier of each variable.
Readers of BYTE should be familiar with
the concept of type as it refers to an integer
(whole number), real (floating point num-
ber), or string (of characters) item stored in
the program's memory. Readers may also be
familiar with the concept of an array con-
taining a collection of items all of the same
type. In effect, an array is a composite type
associating one identifier with a collection
of many similar data items, ie: all integers
or all reals, etc. Pascal allows one to declare
one's own composite type containing a
collection of items of dissimilar types. List-
ing 1 gives a concrete example that might
apply to the records of the Zyx company.
In Pascal, any type declarations one
wishes to make must appear in the main
program or in a block (subroutine) before
any variable identifiers are declared follow-
ing the reserved word var. In the example
1 24 August 1 978 © BYTE Publications Inc
Circle 70 on inquiry card.
Circle 291 on inquiry card.
above, representing part of a block, the var-
iable identifier inrec is to be used for tempo-
rary working storage of a customer record
read in from an external device such as disk.
outrec is to be used to collect several data
items together before writing out to the ex-
ternal device. Both variables are declared to
be laid out in memory according to the type
declaration for customer. In other words,
the declaration of customer describes the
various fields of information that will be
found in any record of that type, whether
currently stored in main memory or on an
external medium.
The first field within a record of type
customer is a name consisting of up to 30
characters. The name is of type, string,
which is a UCSD extension of the standard
Pascal concept of a packed array of charac-
ters. The type string is really just a prede-
clared record type within standard Pascal. In
addition to the packed array of characters,
the record also contains a single byte field
representing the number of characters cur-
rently containing useful string information.
In UCSD Pascal, a variable of type string
with no reference to the maximum length
(like the [30] in the name field) will be
given a default maximum length of 80 char-
acters. Characters are ASCII and are synony-
mous with the concept of 8 bit bytes.
The identifier chargesunpaid is an ex-
tended precision integer represented inter-
nally as a 32 bit binary number and limited
to storing numbers with up to eight decimal
digits of precision. Associated with charges-
unpaid is a scale factor of two decimal digits,
designed to represent dollars and cents. Both
the extended precision concept and the deci-
mal scaling factor are UCSD extensions to
standard Pascal intended particularly for
business use. Where no precision or scaling
factor is mentioned in the type portion of
an integer declaration (as with the fields
areacode, prefix and extension), the system
assumes that the programmer wants the
standard integer precision on the machine
being used. On most microcomputers this
will be 16 bits, equivalent to about 4.5
decimal digits.
telephone is the identifier of a field
within the customer record layout, where
telephone is itself a record containing three
fields, each of which is an integer. Depend-
ing upon the purpose one might have in
mind for the data on telephone numbers, it
might be better to represent the telephone
number field as a string of ten characters.
We have used this representation mostly as
an illustration of the language facilities.
address is also the identifier of a field
which is itself a record containing three
fields. Both telephone and address are said
yOU DIDNT KNOW!
OAE'S new PP-2708/16
PROM Programmer is the
only programmer with all
these features:
• Converts a PROM memory
socket to a table top pro-
grammer: No complex inter-
facing to wire — just plug it
into a 2708 memory socket*
• A short subroutine sends
data over the address lines
to program the PROM
• Programs 2 PROMS for less
than the cost of a personal-
ity module. (2708s and TMS
2716s)
• Connect 2 or more in paral-
lel — super for production
programming
• Complete with DC to DC
switching invertor and 10
"Pat s Pending
turn cermet trimmers (for
precision pulse width and
amplitude alignment)
• All packaged in a handsorr '
aluminum case
PP-2708/16 ..A & T $29
PP-2716 (Programs Intel's
2716) A & T $295.
OAE
Oliver Advanced Engineering, Inc.
676 West Wilson Avenue
Glendale, Calif. 91203
(213) 240-0080
NewUVS-llE
EPROM Erasing System
Performance and Reliability
at an affordable price!
Now available . . . the newest member of UVFs growing
family of quality EPROM Erasing Lamps. The UVS-11E
Short Wave U V Lamp was designed specifically for the small
systems user and computer hobbyist. It's compact,
easy-to-use, and will erase up to 4 chips at one time. It even
features a special safety interlock system for complete safety.
This is the first UV erasing system to offer simple operation
and foolproof safety features at an affordable price. Like all
UVP products, the UVS-1 IE is quality-built and backed by
45 years of U V technology.
Order now from your local authorized UVP stocking dealer.
Or write today for more information and name of nearest
dealer.
ULTRA-VIOLET PRODUCTS, INC.
5100 Walnut Grove Avenue, San Gabriel, CA 91778 U.S.A.
Circle 383 on inquiry card.
w
August 1978©BYTE Publications Inc 125
type customer =
record
name: string [30] ;
chargesunpaid: integer[8:2] ;
telephone:
record
areacode: integer;
prefix: integer;
extension: integer
end;
address:
record
street: string [40] ;
city state: string [40] ;
zip: integer [5]
end
end [customer} ;
x,y: real;
i: integer;
inrec, outrec: customer;
Listing 1 ': User declared composite type declaration in
Pascal. In Pascal, the programmer is required to declare
what type of information will be stored under the identifier
of each variable. Examples of standard predeclared types
include integer and real. Pascal allows one to declare one's
own composite type containing a collection of items of
dissimilar types. In this example, the type "customer" has
been created, consisting of a record of the variables name,
chargesunpaid, telephone and address. String is a prede-
clared composite type provided by UCSD 's Pascal system.
to be "nested" inside the record of type
customer. Pascal would allow us to nest
record type fields within either telephone
or address if we wished to do so, and those
record fields could in turn contain other
records. In this respect Pascal and COBOL
are similar, though the Pascal facilities for
record declarations are generally more flexi-
ble. As in COBOL, one can declare that a
particular transaction record may be used
with several distinct field layouts, allowing
a file to contain records with several differ-
ent formats.
In Pascal, one refers to a complete record
by its identifier alone. We could transfer the
entire content of inrec to outrec using the
statement:
outrec := inrec
No concept similar to COBOL's MOVE
CORRESPONDING statement is available to
allow the transfer of similarly named fields
between records declared to be laid out
differently.
If we wish to refer to a single field of a
Pascal record, it is necessary to name both
the record identifier and the field identifier.
Thus we might assign a value to the name
field of outrec as follows:
outrec. name := 'John Q. Public'
You can spend more time creating
now that prototyping is such a snap.
Talk about Faster and Easier! This has to be the
world's most efficient way to build and test your
computer circuits. A P Products, who brought you
the solderless breadboard in the first place, now
offers them with power.
POWERACE, our new Power All Circuit Evalu-
ator, accepts all DIP sizes, plus TO-5's and dis-
cretes with leads up to .032." And something you'll
really like is its capacity— more than any other
power breadboard manufactured— with 256-5 tie-
point terminals and 16-25 tie-point buses.
For information on exactly which POWERACE
is for you and where you can buy it, call our toll-
free number. 800-321-9668.
Faster and Easier is what we're all about.
g|g AP PRODUCTS INCORPORATED
Box 1 10 • 72 Corwin Drive, Painesville OH 44077
_ (21 6) 354-21 01 TWX: 81 0-425-2250
POWSMCE .:
■■■■ . ■.
f>owep»j«vc:e
1 26 August 1 978 © BYTE Publications In
Circle 12 on inquiry card.
In the situation of complex record types
with many nested records, one can often
simplify the extra writing needed to refer
to all the nested record identifiers by using
the Pascal with statement.
Interactive Input and Output
Input and output (10) is the area of
greatest importance in business applications
where the standard Pascal definition lacks a
few essential features. Standard Pascal input
and output do provide an orientation simi-
lar to some implementations of COBOL in
that a file (an 10 device) has an associated
buffer variable of the same type as that of
the file itself. In the next section we'll
consider files associated with record types.
Published discussions of input and output
in Standard Pascal are generally limited to
handling files of type char, meaning that
input and output are assumed to consist of
a stream of characters. The standard identi-
fier text is a convenient way to declare a
file identifier as in:
fid: text;
which is equivalent to:
fid: file of char;
The standard Pascal read and write state-
ments provide automatic formatting of
external character strings representing inte-
ger or floating point numbers into and from
their corresponding internal integer and real
representations.
While the concept of type text is useful
when working with magnetic tape devices or
with card input and line printer output, it
has proven difficult to use with interactive
devices. The UCSD Pascal system is ex-
tended for this purpose. The principal prob-
lem with type text for interactive files is the
standard Pascal definition of the read state-
ment. read(fid,x) is equivalent to:
x : fid t;
get (fid)
in which the content of the buffer variable
is first assigned to the variable x, following
which a new character is loaded into the
file's buffer variable from the external de-
vice. This is inconvenient when one would
like to place a prompting message on a video
display screen, using a simple write state-
ment, following which the program should
wait for input demanded by a read state-
ment. The standard mechanism implies that
the system looks ahead for a character to be
loaded into the buffer variable. This is a
great idea for tape files, but not at all con-
venient for interactive devices. UCSD Pascal
NORTHWEST"
MICROCOMPUTER
.SYSTEMS_
Fully integrated UCSD PASCAL
CP/M*
3Mhz 8085 CPU
Double density DMA dish controller
1 .2 Megabytes of on-line storage
54 K of static RAM
24x80, 12" CRT display
RS232 Serial communication port
RS232 Serial printer port
TTL compatible paralleled ports
NOW SHIPPING
$7495 complete
*CP/M is a trademark of Digical Research
MAIN OFFICE: 121 EAST ELEVENTH AVE.
NMS 85/P = 8085 + PASCAL
Options include:
Hardware floating point
AMD 951 1 , 02 bit, arithmetic, trig.
functions divide approximately 120 ms
Graphics, bit-mapped dot
5 Mhz 8085 CPU
FORTRAN, BASIC-C, COBOL
Applications software
EUGENE, OREGON 97401 • (500)485-0626
Circle 287 on inquiry card.
August 1 978 © BYTE Publications Inc 1 27
extends this concept by associating type
interactive with interactive devices. Type
interactive is the same as type text except
that the buffer variable is loaded from the
external device before the value in the buffer
variable is moved to the program variable.
In more explicit terms:
var fid: interactive;
get(fid);
x : = fid t
where the last two lines representread(fid,x).
UCSD Pascal extends the idea of types
text and interactive by allowing a string
to be handled with minimum fuss. On
read (fid ,strg) (or just read(strg), when re-
ferring to the standard system file input),
one types characters at a video display key-
board with each character appearing im-
mediately on the screen. If a character is
mistyped it can be erased from the screen
and the input buffer by pressing the back-
space key. If one wants to erase the entire
input buffer for a clean start (with all typed
characters wiped off the screen), one presses
the delete or rubout key. The read operation
is terminated when return is pressed, where-
upon one can determine the number of
characters actually input into the variable
strg by using the built-in string function
length (strg). On output, the write statement
determines how many characters to send
from a string variable using the length field
associated with that variable. For example,
w/7£e('Hello There');
and
strg := 'Hello There';
write(strg);
would both produce the same 2 word mes-
sage on the output device. As in Standard
Pascal, the width of the field of characters
sent from the write statement can be con-
trolled as follows:
write (strg: width)
Disk Input and Output
One of the main reasons for using a disk
file is to allow rapid random access to any
selected record in the file. Access to a floppy
disk record takes roughly 0.25 seconds,
whereas access to a record on a tape cassette
or cartridge can take many seconds or more
MICROCOMPUTER
DIGITAL ELECTRONICS
SHORT COURSE WEEK
Trenton State
College
Aug. 21-25, 1978
Assembly Language Programming and Interfacing for the 8080, 8085,
and the Z80 Microprocessor /$350
Instructor: Dr. Allen Katz, Chairperson of the Engineering Technology Department of
Trenton State College
Programming in Basic for the Microcomputer Owner /$300
Instructor: Dr. Edward Conjura, Associate Chairperson of the Mathematical Sciences
Department of Trenton State College
Microcomputer Digital Logic Circuits /$300
Instructor: Dr. Alois Riederer, Coordinator of the Electronics Engineering
Technology Program at Trenton State College
College credit can be arranged. On-campus housing and meals are
available. For information, contact: Division of Continuing and
Adult Education, Trenton State College, Hillwood Lakes, P.O.
Box 940, Trenton, New Jersey 08626.
Telephone: (609)-771-2255
1 28 August 1978 © BYTE Publications Inc
Circle 379 on inquiry card.
than a minute. Interactive business process-
ing usually requires files to be maintained
on an external medium like disk or tape be-
cause the main memory of a microcomputer
or minicomputer is usually not large enough
to contain a complete file at one time. Ran-
dom access is almost mandatory in most
cases to avoid long waiting times for the
people using the computer.
For example, the Zyx company might
have a database of customer records in a file
fcust declared as follows:
fcust: file of customer;
within the variable declarations of a Pascal
program. When a customer arrives to ask for
information, a Zyx staff member wants im-
mediate access to the record associated with
that customer in the disk file. Standard
Pascal provides no way to reach the cus-
tomer's record without sequentially reading
many other records: usually starting at the
beginning of the file. UCSD Pascal allows
one to position the record number pointer
of the file using the built-in seek statement,
for example:
seek (fcust, recnumber)
Following execution of this statement, the
standard procedure call get(fcust) would load
the selected record numbered recnumber
into the buffer variable of the fcust file.
Contents of the buffer could then be altered
directly or moved to other variables in the
program, get causes the record number
pointer associated with the file to be ad-
vanced to the next record in sequence. If
you want to change the contents of the
buffer variable and then return the changed
contents to the disk record numbered
recnumber using put(fciist), you would first
have to call seek again. The get and put pro-
cedures of Standard Pascal are designed with
sequential tape files in mind, and they can
also be used for sequential reading of disk
files. Use of the seek procedure as described
allows random access to disk files with mini-
mum alteration of the standard language.
Several aspects of disk file handling are
very important for simplifying the task of
the business application programmer, though
not specified as part of the Pascal language.
For example, standard floppy disk media are
usually partitioned into sectors of 128 bytes
each. In some operating systems, such as the
Digital Equipment RT1 1 operating system,
a file is made to appear as partitioned into
physical records of 512 bytes called blocks
(UCSD Pascal system uses this convention).
Typically, the record layout a programmer
wants to use (such as customer in our ex-
INTRODUCING COMPU-KIT
DEALER
INQUIRIES INVITED
Finally, the one tool kit designed especially for home
computers. From assembling kits to servicing existing
equipment, this set of tools is the most comprehensive of its
kind on the market.
This fine kit includes such tools as: wire wrapping tool,
snap ring pliers, screwdrivers, nutdrivers, soldering iron, and
much more. All of the tools are top quality, manufactured by
such companies as: Xcelite, Weller, Utica, and Proto. The
Compu-Kit® is available with or without a Triplet 310 V.O.M.
Compu-Kit $159.00
Compu-Kit with V.O.M $214.00
Compu-Kit Division
Video Spectrum Industries
P.O. Box 20847 Dallas, Texas 75220
Phone: 214/358-1414
To order — send check or money order, or charge
to your Master Charge or Visa card.
□ I've enclosed check or money order in the
amount of $
□ Master Charge
Account Number (all digits)
I I 1 I III 111 '
□ Visa
TT
Inter Bank Number
Signature
Circle 384 on inquiry card.
August 1978 © BYTE Publications Inc 1 29
ample) does not result in a neat fit with the
sector or block size demanded by the oper-
ating system. This means that a logical rec-
ord associated with a record type declaration
in Pascal may occasionally be split between
two physical records on the disk. The oper-
ating system should allow the Pascal pro-
grammer to get a record from the disk or
put a record to the disk without concern for
this complication. The system should main-
tain a directory of disk files so that the pro-
grammer need not be concerned with the
actual location of a file on the disk, but only
with the number of a logical record counting
from the beginning of the file.
The programmer of a business applica-
tions program package needs to have a
simple way to cause a program to call for
changes in the library of disk files main-
tained by the program. For example, an
obsolete copy of a master file might be re-
moved from the directory, or its directory
name changed. The UCSD Pascal system pro-
vides these and other facilities to make disk
file handling as painless as possible on a
small machine.
Keeping Track of Categories of Data
One of the common problems in business
programming is identifying people or things
with certain groupings or categories in order
to simplify the handling of data on those
people or things. For example, the Zyx com-
pany might want to characterize some cus-
tomers as primarily oriented to gizmos made
type
manuf = (able, baker, Charlie, davis, edwards, Jones, smith, none);
customer =
record
name: string[30] ;
chargesunpaid: integer [8: 2] ;
equipment: set of manuf;
telephone:
record
areacode: integer;
prefix: integer;
extension: integer
end;
address:
record
street: string [40] ;
citystate: string[40] ;
zip: integer [5]
end
end [customer};
var
x,y: real;
i: integer;
supplier: manuf;
inrec, outrec: customer;
Listing 2: An expansion of the Pascal code in listing I illustrating the use of
sets. The type manuf has been added, which can be associated with a variable
allowed to assume only the values enumerated in the declaration. For ex-
ample, the new variable supplier, of type manuf, may take on the value of
any of the items in the manuf list such as able or davis, but no others outside
the type.
by certain manufacturers, such as the Able,
Baker, Charlie, Davis, Edwards, Jones and
Smith companies. Within the product lines
of these companies, Zyx might also want to
have ready access to a record showing which
selection of all the possible gizmo modules
a customer might have. Thus, when a cus-
tomer makes an inquiry or a manufacturer
brings out a new type of module, Zyx staff
members could reduce the effort in knowing
how to deal with the customer. For ex-
ample, a printed promotional brochure
might be sent only to the customers asso-
ciated with an appropriate combination of
categories.
In virtually any programming language,
this problem can generally be solved by stor-
ing descriptive strings as additional fields of
the customer record. However, the strings
can take up far more space than one would
like (particularly on a minifloppy disk!), and
they are awkward to use when you are sim-
ply searching through a file for records cor-
responding to a particular combination of
categories. For example, we might want to
search the file to identify all customers who
own gizmos made by the Able, Jones and
Smith companies who also have a particular
type of add-on module. (If you are having
trouble relating to gizmos, how about S-100
bus microcomputers with a minimum of
16 K bytes of memory?)
To solve the space problems in storing
categories information, a standard technique
in traditional programming languages in-
volves deciding on a set of codes to represent
the various categories. In our simple exam-
ple enumerating the gizmo manufacturers,
we might store a single letter representing
each manufacturer, such as A for Able, B for
Baker, and so on. But how do we store the
information that a particular customer is
associated with two or more of these codes?
Without a complex indexing mechanism, a
random access disk file virtually requires
that all logical records be of the same size.
Do we provide an array for storing these
codes? How long does the array need to be
to account for all possible combinations of
codes for our customers? Are we willing to
put up with inaccurate data on a few cus-
tomers in order to save large amounts of file
space for the great majority of customers?
How do we write a search program to go
through the file quickly to find all the cus-
tomers associated with a specific combina-
tion of categories? The reader might well
pause at this point to consider how to ac-
complish these tasks with his or her favorite
programming language.
The Pascal facilities for handling sets are
designed to make program solutions for
problems like these as painless as possible.
130
August 1978 ©BYTE Publications Inc
For example, we might expand the declara-
tions given earlier as shown in listing 2.
We have added the declaration of a new
type manuf which can be associated with a
variable allowed to assume only the values
enumerated in the declaration. For example,
the new variable supplier is allowed to be
assigned the value able, or Jones, from the
list of enumerated identifiers.
Also declared as a new field of the
customer record type is equipment, a set of
members selected from the type manuf.
If a customer of Zyx owned gizmos made
by Baker, Edwards and Smith companies,
the following assignment statement might
appear in a simple program:
outrec. equip := [baker, edwards, smith]
where the quantity in brackets on the right
side is a set constant stating that items are
present from the three manufacturers noted.
For an interactive business file maintenance
program, the record of a new customer
showing no association with a manufacturer
would most likely be initialized using an
empty set constant:
outrec. equip := [ /
Then, when the customer acquired his or her
first gizmo, we might find a statement such
as:
outrec. equip := outrec. equip + f edwards J
which would form the union of the old value
of the equip set with a new set constant
value. In other words, equip would now
have a notation indicating the presence of
edwards in addition to what was previously
noted in equip. We could continue adding
notations of other gizmo acquisitions when
appropriate. In fact this process is likely to
assign a value to a simple variable of the set
type associated with manuf; then that vari-
able would be used elsewhere in the program
to augment the noted membership of equip.
Pascal's facilities for handling sets are
advantageous in many ways. A set is gener-
ally stored in memory as an array of binary
bits which are made accessible in a special
way. In UCSD Pascal, a set is stored as a
string of bytes, each byte containing up to
8 bits to indicate whether a corresponding
value is present in the set. Only the number
of bytes needed to hold the declared number
of set members need be stored. If, as is
usual, one needs several dozen members in
a set for a business application, the space
occupied is very little more than the mini-
mum needed. UCSD Pascal allows a set to
have as many as 4080 members.
Once the value of a set field of a record
has been assigned, it is readily possible to
test whether a customer record is associated
with a desired combination of members. For
example, to determine whether a customer
is noted as owning gizmos made by Baker,
Edwards or Jones companies, we could use
an If statement such as:
if (outrec. equip * [ baker,edwards,jones] ) O [ ]
then
begin . . . end;
Here the expression within parentheses
(on the left of "<>") isolates the members
of equip falling in the group Baker, Edwards
and Jones. The parenthesized expression is
said to be the intersection of the value in the
equip field in outrec and the set constant
within square brackets. The comparison indi-
cated by <> then asks whether the result of
the intersection operation has left any mem-
bers by asking whether the result is an emp-
ty set. If not, then at least one of the three
members must be present, and the com-
pound statement (begin . . . end) following
then is executed.
The alternative to this test for set mem-
bership would usually be a complex se-
quence of IF tests in the traditional lan-
guages. The set combining and testing
operations can be implemented efficiently
by the Pascal system. Thus they allow a
moo mi
l£ MOO
mam:,
mc o mmnpRAmc sooo
• NOT A KIT
• 8v<«.15A, ±16v(?i3A power
• Rack mountable g -
• 15 slot motherboard \
• Card cage
• Fan. line cord, fuse,
switch, EMI filter
• Desk top version option
• 8v@30A, ±16v@10A option
• voltage monitor option
• 100 pin connectors optional
Rack
mounted
model From
S200
top model
From S235
Write or call for a copy of our
detailed brochure which includes
our application note
BUILDING CHEAP COMPUTERS.
INI"EGR4ND
8474 Ave 296 • Visalia. CA 93277 • (209) 733 9288
We accept BankAmencard/Visa and Master Charge
Circle 179 on inquiry card.
August 1978 ©BYTE Publications Inc 131
The UCSD Pascal sys-
tem was described in the
May 1978 BYTE, page 46.
Interested readers can re-
ceive a copy of the soft-
ware for a $200 subscrip-
tion fee, which includes
the software manual. The
manual alone is available
for $15 postpaid. Order
from: Institute for Infor-
mation Systems, UCSD,
mailcode C-021, La Jolla
CA 92093, (714) 452-
4256. Checks should be
made payable to the
Regents of the University
of California.
Manufacturers Known to
Carry UCSD Pascal at Press
Time
Terak Corporation
14425 N Scottsdale Rd
Suite 100
Scottsdale AZ 85260
Northwest Micro Systems
121 E Eleventh Av
Eugene OR 97401
Altos Computer Systems
23 78B Walsh Av
Santa Clara CA 95050
Prices on all these sys-
tems are in the $5000 to
$8000 range for the total
package purchased new by
individuals at retail. For
this one gets a high level
language system for per-
sonal use which is often
far superior to the run-of-
the-mill traditional time-
shared minicomputer or
maxicomputer. Rumor
(but no confirmation yet)
has it that UCSD Pascal
will shortly be available
on the Heathkit H-11 and
other high end personal
computing systems.
program to be written more simply and
occupy less space. They also make the oper-
ations undertaken by the program more
obvious to anyone versed in Pascal, thus
making a complex program more easily
maintainable and bug free.
There's a Lot More
It is not possible to present a comprehen-
sive view of how one uses a language for
complex business programming within a
short article. For example, we have not de-
scribed the use of Pascal subrange variables,
which allow a programmer to state that a
variable is permitted to contain only certain
declared values. If an attempt is made to
assign to the variable a value outside the de-
clared range, the program either terminates
abnormally or (if Pascal is extended in a
simple way) the programmer may provide a
recovery block in which corrective measures
may be taken. Data validation is one of the
most common problems in business data
processing. At UCSD, we feel that the addi-
tion of a simple recovery block mechanism
is essential to allow reduction in program
complexity for handling the many excep-
tional circumstances that show up in busi-
ness data, without unnecessary interruption
of processing.
A Note on Pascal Extensions
Though Pascal does seem to require a few
extensions to make business application pro-
gramming truly practical, the language pro-
vides an extremely powerful base from
which to work. One of the strengths of
Pascal, according to the intentions of its
designer, is that it offers all this power in a
remarkably simple and self-consistent form.
The necessary extensions can be made in
ways that generally retain this consistency
so as to be relatively obvious to the program-
mer. We feel that Pascal is by far the best
language available for adaptation to inter-
active business processing on small machines.
We would be happy to send further informa-
tion about how we use the language for
business or real time applications to anyone
who writes to us.
The questions of whether standard
Pascal should be extended, and how, are
currently being debated intensely in the
international Pascal Users Group. Each
special interest community of Pascal users
has its own list of extensions considered
essential to make the language a practical
tool for developing software products in that
community. Even the question of what
extensions arc essential is being debated,
since it is possible to use the facilities of the
standard Pascal language to create a library
of routines to handle the user's special
problems in most cases. In general, an imple-
mentor should consider extending the
language only in cases where the result will
be simpler and more reliable or efficient
programs.
This article discusses extensions that the
author feels arc essential for business appli-
cations. Other communities with very strong
interests in Pascal work with real time appli-
cations, development of system software
such as operating systems and compilers,
interactive systems such as computer assisted
instruction, scientific computations, and so
on. Of course these communities do overlap
substantially. If the essential extensions
needed by all these communities were added
to the standard Pascal language, the simpli-
city and self-consistency that make the
language so important would probably be
destroyed. Therefore, it is very unlikely that
an eventual formal standard for the Pascal
language will include any but the most
widely needed extensions currently under
discussion.
This situation leaves many Pascal advo-
cates very much worried that there will be
no effective standards for the extended
language features needed by the special
interest communities. There has been
discussion within the Pascal Users Group
about the possibility of encouraging develop-
ment of common interest supersets of the
language for specialized uses. Ideally, lan-
guage standardization is a process which
should proceed slowly giving attention to
the ideas of all experts who wish to be
heard. In practice, the use of Pascal is
growing so fast throughout the computer
industry that close coordination of the
extensions made by many implementors
has become virtually impossible. We at
UCSD have set ourselves the limited goal
of seeking coordination and cooperation
on Pascal extensions for system program-
ming (including those for business and real
time applications) among a number of
industrial firms that seem most active in use
of the language, particularly as regards small
computers. For reasons associated with their
own proprietary interests, these firms will
generally be able to cooperate on only some
of the most widely used language extensions
within their special interest communities. A
Pascal language extensions workshop was
held at UCSD in July of this year primarily
to help bring about this coordination. We
intend to continue working as closely as
possible with the international Pascal Users
Group, and to take guidance from the PUG
leadership on extension issues whenever
practical."
132 August 19786BYTE Publications Inc
Continued from page 6
stroking of programs or object code for
programs. The traditional manual and job
shop methods of production of copies of
software for distribution are not appropriate
when we think of a mass market of 10,000
to 100,000 copies (or more?) of a program
distributed via retailers and mail order
houses with a retail price of (for example)
$9.95.
The Software Distribution Model
Given an identifiable set of computers
with sufficiently similar characteristics, soft-
ware can be marketed and distributed to
multiple users.
The "sufficiently similar" characteristics
which make a program marketable to mul-
tiple users include the formal representation
of the software, and the machine readable
medium in which the software is delivered.
The machine readable representation of a
program product is always accompanied on
delivery by extensive printed documentation.
At a minimum this documentation describes
how to use the product; in the optimal case
it includes details of the actual algorithms
employed. To summarize, the key points of
a delivered product are:
• Formal representation.
• Machine readable medium.
• Documentation.
I'll be making evaluations and comments
largely on the subject of formal representa-
tion from the point of view of the new mass
market for software which is developing in
the personal computing field.
Formal Representation
The formal representation of programs to
be distributed by a software vendor is one of
the key choices which has to be made. At
one extreme, the vendor could provide
extremely machine dependent and configu-
ration dependent low level code for a
particular computer system product. At the
other extreme, the vendor of software might
provide a largely machine independent
formal representation in a high level language
shared by a number of computers. At an
intermediate point between these extremes,
especially in an era of mass production of a
small number of processor architectures as
microcomputer systems, we find the possi-
bility of delivering configuration independent
but machine dependent relocatable repre-
sentations of low level code for a particular
microprocessor instruction set.
For that class of software products
supplied by the original manufacturer of a
particular computer system, there is no
problem providing compatible software at
whatever level of representation is chosen.
The manufacturer of a system after all
controls the detail choices with respect to
processor hardware, system configuration
and systems software. Since all the details
are decided by the particular design, it is
even practical to market software in the
form of a memory image at the lowest
level (possibly in read only memory parts).
Since the choice of processor is well defined,
the manufacturer can also provide modules
of software represented as relocatable
machine code, along with a suitable loader
program which is part of his systems soft-
ware. Since the detailed choice of high level
language processors is well defined, the
manufacturer can also provide applications
and systems programs represented in his or
her high level language. The manufacturer
of computer systems products at most must
deal with a small integer number of pro-
cessors and high level languages.
We find this model of software delivery
by the manufacturer of a system throughout
the computer industry to date. Every main-
frame and minicomputer comes with low
level representations of systems software and
(eventually, if not at introduction) with user
Articles Policy
BYTE Publications Inc h continually
seeking quality manuscripts written by
individuals who are applying personal
computer systems, designing such sys-
tems, or who have knowledge which
will prove useful to our readers, hor
a more informal description of pro-
cedures and requirements, potential
authors should send a self-addressed,
stamped envelope to BYTE Authors'
Guide, 70 Main St, Peterborough NH
034 58.
Articles which ore accepted are
purchased with a rate of $45 per pub-
lished page, based on technical quality
and suitability for the intended reader-
ship. As to articles appearing in BYTE
magazine, each month, the authors of
the two leading articles in the reader
poll (BYTE's Ongoing Monitor Box or
"BOMB"} are presented with bonus
checks of $100 and $50. Unsolicited
materials should be accompanied by
full name and address, as well as return
postage.'
Tremendous Savings
on Refurbished AJ
Couplers/Modems
Your chance to buy the best from the world leader in
data communications. We have a variety of couplers
and modems — formerly on lease to our customers
— fully refurbished at our factory. This is a rare
opportunity for you to have the same models used
by the largest companies in the world.
• Some models under $100!
• Direct from AJ factory
• 30-day parts/labor warranty
• Nationwide AJ service network
• Fast delivery
• Variety of models — up to 1200 baud
• Limited quantities
Act now. First come, first served. Write Anderson
Jacobson, Inc., 521 Charcot Ave., San Jose,
CA 95131.
OR CALL (408) 263-8520
Circle 9 on inquiry card.
August 1978 ©BYTE Publications Inc 133
Circle 43 on inquiry card.
I
I
V
ADM-3A 756
00*
IN KIT FORM
80 CHARACTERS/LINE
• 24 LINES/SCREEN
ADDRESSABLE CURSUR
9, 10, or 11 BIT WORDS
Plus Shipping
and Handling
• 75-19,200 BAUD
• FULL & HALF DUPLEX
• ODD/EVEN/NO PARITY
• RS232 INTERFACE OR
20 ma CURRENT LOOP
m
GET COMPLETE DETAILS WITH A DIRECT CALL:
214 258-24111 TWX 910-860-5761 TELEX 75-0022
800 527-3248
capital
930 N. BELTLINE
equipment brokers
IRVING, TEXAS 75061 I
LSI-11 TIME
It's TIME you brought your LSI-11 up to DATE. TIME and
DATE, two important parameters in the computer world, are
available to your LSI-11 on one DUAL SIZE BOARD When
requested, the TCU-50D will present you with the date (month
and day), time (hour and minutes), and seconds. Turn your
computer off and forget about the time — your battery sup-
ported TCU-50D won't, not for 3 months anyway. The correct
date and time will be there when you power up.
The TCU-50D is shipped preset to your local time, but can be set
to any time you want by a simple software routine.
AT $295
YOU CANT AFFORD TO IGNORE TIME
Time is only one way we can help you upgrade your LSI-11 or
PDP-11 system. We'd also like to tell you about the others. So
contact Digital Pathways if you're into -ll's. We are too.
DIGITAL PrtTHWrM IMC.
4151 Middlefield Road • Palo Alto,
California 94306 • Telephone (415) 493-5544
libraries of high level and low level programs
applicable with the particular systems. At
the lowest end of the personal computer
spectrum of functions we find a similar case:
the major programmable calculator manu-
facturers with their independent incompat-
ible systems provide users with libraries of
magnetic cards or read only memories
expressed in a form consistent with the
particular machines.
But a characteristic of manufacturers of
computers is already evident again in the
personal computer world, just as it previously
existed in the world of minicomputers and
larger computers: whatever the resources of
the manufacturer, there is no way it can
cover all the myriad applications possible for
its computer. To draw an analogy from
music, we hardly expect a piano or organ
company to supply sheet music ("software")
with the musical instrument which is suit-
able for every user's tastes. The music "user"
purchases scores according to personal likes.
A personal computer provides an analogous
opportunity to exercise tastes in software
characteristics. Even for the traditional high
priced computer, customization through
software is for the most part independent of
the manufacturer once the basic operating
system and software tools have been defined.
In software, the past has seen a large
number of custom software vendors grow
large in the niches of large scale computing
and minicomputer technology. As the
number of people using personal computer
systems increases due to the low price of
these systems, independent software pub-
lishing seems to be one of the most promising
ways to assure a wealth of options to the
user, provided that the difficulties of the N-
representation problem can be overcome.
The N-Representation Problem
For the moment, let's ignore all reference
to the problem of machine readable data
compatibility and simply look at the user's
point of view with respect to software. The
user has purchased computer X for use in
personal or professional contexts. When he
or she has made the commitment to the sys-
tem, our user can in general expect to be
able to conveniently load programs created
on other X systems from the same manu-
facturer. But what if he or she wants to load
a program created by a neighbor on com-
puter Y from another manufacturer? Or if
the user wants to load a program from an
independent software vendor? The variety of
representations available in the traditional
world of computers as well as the personal
computer world is large — even within the
framework of nominally machine indepen-
dent high level languages.
Confining ourselves just to machine
134 August 1978 © BYTE Publications Inc
Circle 91 on inquiry card.
Circle 40 on inquiry card.
dependent microcomputer assembly lan-
guages, there is a wide choice of architec-
tures. At present we find the 8080, Z-80,
6502 and 6800 dominate personal computer
architectures. Over the next two to three
years we will find added to this list the
9900, 8086, Z-8000 and 6809. If the user of
a personal computer sees a neat application
system which only comes represented in
8080 code when he has a 6800, that user
is effectively unable to run it without a
recoding effort. (But even confining our-
selves to assembly languages of the same
machine design, there is often incompati-
bility. One vendor of Z-80 software provided
an assembler using a hybrid extension of
8080 mnemonics, while others use Zilog
Z-80 mnemonics. So the same processor has
at least two low level languages available.)
Turning to high level languages, the
machine independence of software becomes
much greater. But current practices in the
personal computing industry are far from
machine independent. There is a de facto
standard BASIC interpreter in existence,
available on most 6502 and 8080 or Z-80
systems. This standard high level language
is that defined by the Microsoft company.
Extensions and changes of detail accompany
each implementation, especially when a
given computer has specialized graphics
capabilities not available on all the other
computers. With the Microsoft design, the
major portions of an extended BASIC are
identical over a large set of machines.
But Microsoft BASIC is not the only
interpreter in existence. A very prominent
BASIC in terms of the number of users
employing it as represented in the unsolicited
articles received at BYTE is the North Star
BASIC interpreter. This interpreter is widely
used on 8080 and Z-80 systems because of
the wide availability of the small floppy disk
systems manufactured by that firm: buying
a North Star disk peripheral for an S-100 bus
system gets the user a limited operating sys-
tem and the North Star BASIC. The North
Star BASIC interpreter and the Microsoft
interpreter are inconsistent in a number of
fundamental ways in areas of string handling
and array dimensions. And these are but the
two most prominent interpreters as seen
from my point of view as editor of BYTE. I
could almost comment that manufacturers
take any random formulation of a language
vaguely resembling BASIC as originally
implemented at Dartmouth, and call it
BASIC for marketing reasons. (The tempta-
tion to add or delete "features" in a language
is of course not confined to BASIC alone.)
From the point of view of a software
publisher, the economies of scale obtainable
from a mass market will only be obtained if
we use a common representation for applica-
c a rtafl a.. ^
systems, inc. ^^
Boards BD® Something "
CL2400 Real Time Clock
$98/ Kit $135/ Assembled
If your system needs to know
what time it is, our CL2400 is
the board for you. The present
time in hours, minutes, and sec-
onds is always available for input,
and is continuously updated by
the highly accurate 60 Hz power
line frequency. Need periodic in-
terrups? The CL2400 can do
that, too, at any of 6 rates. Reference manual with BASIC and
assembly language software examples included.
If your system needs on/off con-
trol of lights, motors, appli-
ances, etc., our PC3200 System
components are for you. Con-
trol boards allow one 1/0 port to
control 32 (PC3232) or 16
(PC3216) external Power Con-
trol Units, such as the PC3202
which controls 120 VAC loads to
400 Watts. Optically isolated.low
voltage, current-limited control
lines are standard in this growing
product line.
P.O. Box 516
La Canada, CA 91011
(213) 790-7957
PC3200
Power Control System
PC3232 $299/Klt $360/Assm.
PC3216$189/Klt $240/Assm.
PC3203 $39.50/Kit $ 52/Assm.
(formerly comptek)
RELIABILITY
QUALITY
DEPENDABILITY
ADDRESSING
PROTECT
BUFFERING
LOW POWER
WAIT STATES
QUALITY
GUARANTEE
DELIVERY
PHANTOM
TESTING
8K STATIC RAM
ASSEMBLED
S-100
MEMORY DISABLE IS IMPLEMENTED VIA PHANTOM (PIN 67)
SPECIAL
INTRODUCTORY
PRICE
ASSEMBLED/TESTED
(714)992-5540
2555 E. CHAPMAN AVE.
SUITE 604
FULLERTON, CA 92631
45U ns 13U lib
$14995 $18995
CALIFORNIA RESIDENTS ADD 6% TAX
J DIGITALy JT_
Circle 294 on inquiry card.
August 1978 © BYTE Publications Inc 135
tions and systems programs which can be
correctly executed by any low level architec-
ture available in the marketplace. With a
large number of mutually incompatible soft-
ware systems, this is not the case. It is my
contention that the N-representation prob-
lem can be solved once by use of appropriate
intermediate language representation and
efficient interpreters for particular micro-
processors. Then the key part of an applica-
tion or systems program product is the high
level language documentation, the equivalent
lower level intermediate language object
code, and the user documentation: all of
course independent of the final machine
upon which the software will run. The only
machine dependent part which needs to be
published is the intermediate language
interpreter for a given machine and system
configuration. This machine dependent part
needs only one definition and one publica-
tion version.
Given an interpreter definition, the
standard high level language, and the stand-
ard intermediate language representation of
programs, the user can be assured that once
the object code is in place in his machine,
the program will run with the same charac-
teristics as described in the documentation
for a radically different machine. (Hardware
differences due to favorable number repre-
sentations will make differences in precision
and accumulated numeric error effects of
course.)
Ruling Out BASIC
To the software publisher, a choice of a
high level language and intermediate repre-
sentation for executable code presents a
moderate problem. The widely used BASIC
interpreters could be used for a perfectly
functional representation for the code of
many programs. But such interpreters suffer
from many inherent disadvantages:
• Lack of uniform representation.
• Slowness of execution.
• Archaic nature of BASIC.
• Lack of a compact machine independ-
ent compiled form.
I've already commented on the lack of
uniformity in the various BASIC implemen-
tations. The slowness of execution is inherent
in this type of interpreter. In extreme cases
an active search through memory for a label
op code is used to find targets of subroutine
calls or unconditional transfers. At best
there is a level of semantic interpretation
necessary to convert a condensed version of
the source code into executed code. Many
applications and systems programs cannot
tolerate the lack of speed inherent in such
interpreters. But BASIC can be compiled
instead of interpreted, so this argument
alone is far from sufficient to rule out
BASIC.
More important, a language like BASIC
as presently implemented reflects an earlier
state in the evolution of computer languages,
circa the early 1960s, with innumerable
ad hoc patches and fixups to add "features."
Through the 1960s and early 1970s advances
were made in the concept of what a
computer language should be in order to
be convenient to use and conducive to
error free thinking and programming. (For
just one contrast, consider this: where the
BASIC programmer is required to go almost
to the machine language level of assigning
numbers to locations in a program, good
$95 Stand Alone Video Terminal
i ;, #*';ro *+.-.
abcdefQhi jklflnop4rstuuwxyz<l>'
SCT-100 l-KATURRS:
i Serial ASCII or BAUDOT w
Baud rates
. M, •"» * » K -
fMB aft • » » * A Vk *
$187 Assembled br $157 Kit (Partial Kit $95)
Full cursor control with scrolling and pagin
On board power supply
i Many additional features
Call or write today. MC/VISA accepted
XITEX CORP. P.O. Box #20887
/ Dallas, Texas, 75220 •Phone (214)386-3859
/ Overseas orders and dealer inquiries welcome
136 August 1978©BYTE Publications Inc
Circle 400 on inquiry card.
contemporary high level languages such as
Pascal and its relatives allow the programmer
to use meaningful names based on the appli-
cation being programmed.)
Finally, BASIC as implemented in most
cases suffers from the lack of a compact
externally available machine independent
version of the compiled form of a program.
This is an important requirement for the
software publisher, since executable code
must always be supplied in some machine
readable representation, and compactness of
representation is important if the inconven-
ience of relatively slow input techniques is
not to discourage the user.
For the reasons just summarized, BASIC
is not the ultimate form in which programs
are best published. But if BASIC is not the
personal computing representation which
minimizes the N-representation problem,
then what is a better choice?
Enter Pascal
My own personal interest in Pascal came
about for reasons which I summarized in the
December 1977 BYTE, page 6, in an essay
entitled "Is Pascal the Next BASIC?" In
this issue several excellent articles including
those by Ken Bowles, Chip Weems and Allan
Schwartz provide further rationale by way
of tutorial argument and example.
This personal viewpoint with respect to
Pascal is that of a user of a personal com-
puter system who wants to conveniently and
quickly implement applications and systems
software projects ranging from the sublime
to the ridiculous. In the sublime category, I
include systems software as an art form in
itself. I also include writing systems software
for my pet projects in musical applications
of computers, sophisticated games, and
some experiments in the exploration of
artificial intelligence concepts. In the
ridiculous category, I include such mundane
tasks as trivial games, income tax calcula-
tions, personal mailing lists of friends and
relations, etc. The point about Pascal to be
made here is that it js a language well adapted
to the utility of computing, whatever your
personal definition of utility is. In the range
of applications I expect that the Pascal
approach to structured, self-documenting,
machine independent code will suffice with
only an extremely rare necessity to resort to
ad hoc kluges in the name of time or memory
space efficiency.
From general reading I knew that a Pascal
compiler was available and easily transferable
to new machines through the use of the
technique of "P-code" intermediate language
representations. This availability throughout
the academic world was one of the reasons
for the spread of Pascal, for it is one thing to
extemporize about the virtues of a represen-
tation and another thing to be able to
actually write and examine the properties of
code in that representation. Since the
original Pascal compilers from Jensen and
Wirth et al in Zurich were written in Pascal,
producing a P-code intermediate language
output file, the task of making the compiler
run on a totally new machine architecture
was reduced to a relatively simple task of
writing an emulator for the hypothetical
"P-machine" which executes "P-code" as its
machine language.
What I did not know at the time of my
earlier comments in these pages is the extent
to which that P-code technology had already
been applied to small computer systems, in
A/BASIC© 6800 COMPILER
MICROWARE'S new A/BASIC compiler can break the software bottleneck in your M6800 system.
A/BASIC compiles BASIC source programs to fast, memory-efficient machine language programs.
A/BASIC is a cost-effective alternative to slow interpreters or complex assemblers at a price you can afford.
••NOW AVAILABLE FOR DISK BASED AND CASSETTE SYSTEMS"
COMPILED PROGRAMS RUN MUCH FASTER THAN INTERPRETERS
• GENERATES PURE M6800 CODE — NO RUN-TIME PACKAGE REQUIRED
• PROGRAMMER HAS COMPLETE CONTROL OF MEMORY ALLOCATION
SUPPORTS LOGICAL, REAL TIME, AND EXTENDED STRING OPERATIONS
A/BASIC V1.0C 8K CASSETTE-ORIENTED VERSION* on K.C. CASSETTE $50.00
'(Cassette version requires RT/68MX)
A/BASIC V1.0D12K DISK EXTENDED (MINIFLOPPY— Specify S.S.B. or SWTPC) $150.00
BANKAMERICARD • MASTERCHARGE
We'd like to tell you more about A/BASIC and other advanced M6800 products.
Write or call today for complete information and our free catalog.
MICROWVRi: M SYSTEMS CORPORATION
P.O. BOX 954 • DES MOINES, IOWA 50304 • (515) 265-6121 i ,,,„,„,, k r,. w iv„,i
Circle 240 on inquiry card.
August 197SOBYTE Publications Inc 137
Introducing G/2 Extended
Basic for Processor Tech-
nology's SOL computer
series. The best Basic you
can buy.
Developed by Micro-
soft™ the industry leader in
microprocessor languages,
and fully debugged and
field-proved, this 15.5K pro-
gram offers such outstanding
features as string arrays,
16-digit accuracy, fully
descriptive error messages,
automatic line numbering
and renumbering in selected
increments, long variable
names, trace function for
easy debugging, and many
other superior capabilities.
G/2 Extended Basic can
read tapes written in FFs 5K
and Extended Basic. This
allows you to use all your pre-
viously developed programs.
Available now on cassette
tape with full documentation.
At your dealer, or write for
information.
THE REASON
YOU BOUGHT
YOUR COMPUTER.
V Wtm
mi
T
138 August 1978SBYTE Publications Inc
CRT Corporation
Consumer Computer Group
1286 N. Lawrence Station Road
Sunnyvale, California 94086
(408) 734-2910
Circle 149 on inquiry card.
particular through the work of the people at
the University of California at San Diego
(UCSD). The UCSD Pascal project has
created a nearly machine independent low
cost operating system which includes Pascal
as the principal high level language, all the
usual disk filing system features, support of
high resolution bit map graphics including
user definable font storage for the character
set, an advanced cursor oriented text editor,
and interactive compilation and editing
features. All the systems software in this
package is written in Pascal with the ex-
ception of the P-code interpreter and asso-
ciated detail hooks to the hardware.
The hardware dependent core has already
been implemented and is readily available
for LSI-11, 8080, Z-80 and 8085 processors.
(The cost is only $200 for individual orders,
with UCSD quoting a $10 royalty per copy
to manufacturers distributing systems in the
highest volumes.) At this writing, in the
small computer arena, three systems are
available which come with UCSD Pascal
as a key feature: an LSI-11 system packaged
by Terak Corp and heavily used at UCSD,
an 8085 processor in a elegant wood finish
package with dual floppy drives manu-
factured by Northwest Microcomputer
Systems, and a compact Z-80 system with
dual floppy disks manufactured by Altos
Computer Systems. Individual users who
have 8080 floppy disk systems with the
CP/M operating system and enough main
memory get a floppy disk to bootstrap
UCSD Pascal.
A Serendipitous Result
The nature of the implementation of
Pascal compilers, and the UCSD Pascal in
particular, leads to an important byproduct:
by simply using the UCSD Pascal compiler
as the mode of expression of applications
programs to be published, it is possible to
provide a compact, machine independent
representation of programs which greatly
simplifies the N-representation problem for
the independent software distribution house.
The intent of discussing this serendipitous
result in print at all is to show the way in
which such independent software houses can
indeed solve one of the thornier issues and
provide their customers with programs
which are compiled once yet will run on any
one of a number of personal computer
systems.
What do we have which already exists in
a form which can be readily adapted to a
number of small computers? We have the
work at UCSD which has produced P-code
interpreter based systems for LSI-1 1 and the
family of microprocessors inspired by the
8080 (8080, 8085, Z-80). By the end of the
summer of 1978, indications are that UCSD
will also have bootstrapped the Pascal
compiler to run on 6502 and 6800 architec-
tures. Taking this P-code interpreter as the
input, it is not that difficult to conceive of a
self-contained software system which will
run in a 16 K byte or larger personal com-
puter system and will contain the necessary
interactive user interfaces to load and run a
program expressed in the P-code intermediate
form as output from the Pascal compiler,
but without the necessity of having the full
UCSD system available locally to support
local compilations.
As a means of demonstrating this con-
cept, a student at UCSD will spend some
time this summer creating and characterizing
a system based on the UCSD P-code inter-
preter software for two different machines.
This stand alone system will run in the
typical current memory sizes of 16 K to
24 K found in personal computers. The goal
is to demonstrate a system which can read in
a P-code object file (possibly in bar code or
audio format), then execute the object file.
Issues to be addressed are those of designing
the details of the program so that its machine
dependent parts can be relocated easily, and
so that initial patches for input/output (10)
conventions can be created without excessive
mental effort. The machine independent
part of this stand alone operating system will
be written in Pascal.
In principle, expanding this work to a
greater number of processors, it is possible
to create a set of Pascal P-code machine
emulators which can be published once and
only once for each common machine archi-
tecture and personal computer manufac-
turer's configuration, so that this "virtual
machine" can be used by a whole family of
independent software vendors as a target
machine for their wares, rather than requiring
each software vendor to solve the N-machine
problem separately. By inexpensively pub-
lishing the code of the P-machine emulators,
we hope to help kindle both an interest in
Pascal as a source language and a chain
reaction of simplification in the software
conventions which must be addressed by
independent software vendors. Only time
will tell whether or not we accomplish this
goal.
A Solution to the N-Machine Problem
Given the existence of such inexpensive
standard emulators for the P-machine which
executes P-code, a number of beautiful
effects become evident for the distribution
of application and systems software among a
large number of users.
First, since P-code is conducive to use of
Pascal as a source language, there will be
Introducing G/2 Standard
Basic for the SWTPC com-
puter series. It'll load faster
and do more than you ever
thought possible.
Developed by Micro-
soft^" the industry leader
in microprocessor languages,
and proved for more than 3
years in MITS applications,
G/2 Standard Basic is now
available for the first time
for use with Southwest Tech-
nical Products Corporation's
6800 hardware.
Four to eight times faster
than the basic you're now
using, this interpreter offers
string arrays, extensive string
functions, Peek, Poke, Wait
and Continue, direct execu-
tion of statements in the
calculator mode, 10 nested
machine language sub-
routines, multidimensional
arrays and much more. And
it uses only 7K of memory.
Available now on cassette
tape with full documentation
At your dealer, or write for
information.
THE REASON
YOU BOUGHT
Y0URC0MPUTER.
EL GRT Corporation
Consumer Computer Group
1286 N. Lawrence Station Road
Sunnyvale, California 94086
(408) 734-2910
Circle 149 on inquiry card.
August 1978©BYTE Publications Inc 139
a trend toward use of Pascal to express
algorithms — a result which is laudable on
the abstract and practical grounds of Pascal's
beauty as a self-documenting and structured
representation of programs. (We already see
this trend with respect to BYTE articles
presently queued for publication in the near
future.)
Second, the N-machine problem of distri-
bution is solved by the device of using the
P-machine emulator for each of N-machines
as the only machine-specific program, and
widely publishing the emulators at as low a
cost as possible.
Third, the P-code object code form is a
semantically compact representation which
in fact minimizes the number of bits neces-
sary to communicate a program to the
system which the end user employs. (Yet it
maps directly into the source code expressed
in Pascal as part of the documentation of the
program product in place of flowcharts or
other devices.) This consideration is impor-
tant to the relatively slow 10 devices such as
FM subcarrier broadcasts of programs,
printed bar code copy of programs, audio
channel recording of programs, phone
network transmission of programs, or silicon
real estate of read only memory parts (as
inspired by Texas Instruments' SR-59
"Solid State Software" and hinted at by
every other semiconductor manufacturer
interested in distributingcomputers at retail).
Why Not Publish Machine Readable Source
Code Instead of an Intermediate Language
Representation?
The intention of this argument is to
provide a way for compiled code to be
distributed for use with systems which have
diverse microprocessor architectures and
detail implementations. A key to publishing
software inexpensively is the requirement
that every detail copy of the software pub-
lished be identical. Further, a certain defini-
tion of the "lowest common denominator"
of the set of systems is required.
One way of publishing which is guaranteed
to be amenable to a wide variety of detail
representations is to publish the machine
readable source code of software. But the
sheer volume of the code for a well docu-
mented source listing argues for a way
which is more economical of the user's time
and energy. By publishing the machine read-
able but machine independent intermediate
language object code compiled from a
printed source listing (also part of a product),
the executable representation can be loaded
into the machine much more quickly; for
program representations in read only memory
which are mass produced, an intermediate
code representation is also favorable because
of compactness relative to source code.
To summarize, the intermediate language
approach provides the benefits of machine
independence coupled with the compactness
of representation inherent in the usually
machine dependent object code for a partic-
ular architecture. (The negative side of using
a machine independent representation is of
course the time overhead of the required
low level interpreter. But for a well done
intermediate language interpreter, we would
expect this penalty could approach a mere
2:1 versus a typical 20:1 or worse penalty
for direct interpretation of the source code.)"
M9900 CPU- 16 BIT MINI for the S-100 BUS with PASCAL
The M9900 CPU brings the most powerful single-
chip processor available today— the Tl TMS9900—
to the S-100 bus and supports it with powerful
software. Included with the CPU board are Disc
Operating System, BASIC, Assembler, Linking
Loader, Text Editor, and Interactive Debug. The
powerful Pascal compiler is only $150 more.
Move up to a 16 bit machine and the power of \|«lH 110 ll i I> SuiStOIHS
Pascal without losing the economy and selection 1CC . . , , * ,
- , ~ * ~~ , i » n^r^r^^ ^ n. , , 16 Saint Jude Road
of the S-100 bus - move up to the M9900 CPU. Mm Vg||ey< Cg g4g41
(415) 383-1545
Kit $550 Assembled $700 Documentation $20
140 August 1978©BYTE Publications Inc
Circle 219 on inquiry card.
Some Notes About Pascal. . .
As this issue was being prepared, a
number of interesting bits of information
became available:
• Ken Bowles reports that one associate
of the UCSD Pascal project is using the
microcomputer based Pascal which the
project has created in order to write a
P-code optimizer in Pascal. The
writing of an optimizer program is not
in itself particularly noteworthy, but
the fact that this optimizer is being
written for Pascal compiler output of a
Cray-I computer shows ample evidence
of the relative machine independence
of Pascal techniques. Here we find the
LSI-i I based Terak machines at UCSD
(typically a fully loaded LSI-I I with
keyboard, bit map graphics, one
floppy drive) being used to write,
debug and check out programs for one
of the world's largest and fastest com-
puters, the Cray-I. (How fast? Fast
enough so that light speed propagation
limits in the wires become a n on trivial
consideration in the physical design of
the machine.) Yet the Cray-I uses a
dialect of Pascal for systems program-
ming, and even has a FORTRAN
compiler which uses P-code as its inter-
mediate language.
• We note that even the US Defense
Department likes Pascal as a replace-
ment for such monstrosities as
JOVIAL. Two contracts for further
language design efforts on the "Steel-
man" phase of the search for a
"DOD-1 " language definition have just
been announced, with Intermetrics Inc
and Honeywell-Bull being finalists in a
language design competition based on
preliminary proposals. Much of the
content of this language definition is
expected to be inspired by Pascal, even
if it is not a proper superset of the
language.
• From the industrial side, Texas Instru-
ments Inc has a version of Pascal
which is supported for the 990 series
of minicomputers, where "supported"
means that it is available for use with
their disk systems, marketing people
are pushing it at seminars for 990
system users, and a comprehensive
manual describing the system is
available. The 990 series of minicom-
puters of course includes the micro-
computer version of the processor,
which is the TMS-9900, and is one of
the logical choices for a serious home-
brewer or designer of a custom micro-
computer system which must use a fair
amount of complicated software. The
990 version of Pascal is probably a
little too expensive for the individual
to purchase, but it represents a very
good investment for a commercial user.
• Finally, as we went to press with this
issue in mid-May, a standards confer-
ence, called by Ken Bowles, was
scheduled for mid-July at San Diego.
Attendance was expected from the
worldwide Pascal community, as well
as representatives of major industrial
concerns, with the intent of defining a
set of "standard" extensions to the
Pascal language of the Jensen-Wirth
report. We expect to have some
comments in a future issue about the
major points covered in that standards
conference. (Of course, the reason for
standards must be properly under-
stood: a language standard provides a
reference so that any implementer can
flag users about how his particular
system deviates from the standard.
This philosophy is seen throughout
computer technology in areas as
diverse as character sets for terminals
and FORTRAN IV compilers which
use the ANSI standard model. A Pascal
standards consensus already exists in
the Jensen-Wirth report published by
Springer- Verlag, and the purpose of
the conference is to define an exten-
sions set that covers the superset of
the original language necessary to
enhance the practicality of the lan-
guage in real world situations.)
Pascal is one of the most exciting devel-
opments with respect to personal computing
we have seen in recent years. The small
computer is finally getting to a point where
the professionally oriented individual can
afford (at the price of a typical new auto-
mobile) a computer with some of the most
advanced software development character-
istics possible in today's computers. Just as
a crank starter can get the engine going on
an automobile, BASIC and assembly lan-
guage can indeed be used to program com-
puters. But if one really wants to use an
automobile conveniently, an ignition switch
and electric starter are now considered
essential. The moral of this little simile is
that Pascal is the electric starter of the
computer world. ■
August 19780BYTE Publications Inc 141
Save 20% on all Dynabyte
Save 15% on all
IMSAI and Cromemco
Save at least 1 5% on all
TDL and North Star
Contact us for savings on
Micropolis
NORTH STAR
HORIZONS
ABSOLUTELY BEST PRICES
AND BEST DELIVERIES
Horizon 1 Kit, List $1599 $ 1349
Assembled and tested. List $1899 . . 1599
Horizon-2 (with 2 drives) Kit, List $1999 1699
Assembled and tested, List $2349 . . 1939
TDL XITAN ALPHAS
— LIMITED TIME SPECIALS —
Xitan Alpha 1, List $993 $ 839.95
Xitan Alpha 1.5, List $1172 964.95
Xitan Alpha 2, List $1601 1309.95
Xitan Alpha 3, List $1541 1278.95
Xitan Alpha 4, List $1970 1599.95
Xitan Alpha 5, List $2041 1703.95
Xitan Alpha 5-Plus, List $2410 2017.95
MiniMicroMart
ALPHA 1 .95 SPECIAL
Similar to TDL Xitan Alpha 2, Kit . $798
TDL Z16K STATIC
MEMORY BOARD
Assembled and Tested
Originally $695
OUR PRICE: $339
We also stock TAR BELL, MORROW,
SD SALES, XITEX, and others!
- SEND FOR FREE CATALOG -
MiniMicroMart, Inc.
1618 James Street
Syracuse, NewYork 13203
Phone: (315) 422-4467
142 BYTE August 1978 Circle 250 on inquiry card.
Continued from page 48
interested in becoming members should
write to Patrick at POB 7162, Los
Angeles CA 90022.
Association of Small Computer Users
An association of users and potential
users of small computers has been
formed to provide "a new source of
unbiased, user oriented information" on
the minicomputer and microcomputer
market through available publications.
The membership lee is $25 per year,
which includes a year's subscription to
the association's bimonthly newsletter,
Interactive Computing, a year's sub-
scription to Minicomputer News, and
two feature reports from Datapro
Research Corp, All About Small Business
Computers and User Ratings of Mini-
computers and Small Business Com-
puters. In addition, members will be
eligible for reduced rates on selected
publications. Additional information
can be obtained by writing to the
Association of Small Computer Users,
75 Manhattan Dr, Boulder CO 80303.
G C Computer Group
G^C-^ has been formed in Mobile
AL by a group of personal computer
users. They meet the first Wednesday
of every odd numbered month. Anyone
in the Gulf Coast area is invited to join.
Present membership ranges from novices
to established professionals, ensuring
a wide variety of subjects for discussion.
Members often bring their computers
to these meetings for demonstrations
and presentations on their building
techniques. For the location of the
next meeting and additional infor-
mation, call (205) 478-1777.
6800 Users Group
A 6800 Users Group has been formed
for the Dallas and Forth Worth TX area.
It meets on the third Thursday of each
month at 7 PM at 1220 Majesty, Dallas
TX. All parties interested in attending
are cordially invited to do so. Varied
topics of interest to users of the 6800
systems along with tutorials in assembly
programming are discussed.
Also of interest to users of 6800
systems is the group's "Ask the Chips"
feature, where any questions or com-
ments concerning the 6800 are presented
and discussed during the meetings.
Worldwide users may correspond at the
address listed below; the group will make
every attempt to respond with solutions.
For further information contact
Charles A Matz, 4114 Avondale, Suite
2, Dallas TX 75219, or phone evenings
(214) 522-7130."
Designing Structured Programs
Structured programming is an attempt to modernize software develop-
ment and to reduce the side effects that divert so much programmer
time from actual programming. The use of structured languages like
Pascal promotes good programming techniques.
Chip Weems
Dept of Computer Science
Oregon State University
Corvallis OR 97331
In the early days of the computer indus-
try, the most expensive part of owning a
computer was the machine itself. Of all the
components in such a machine, the memory
bank was the most costly because of the
number of parts it contained. Early compu-
ter memories were thus small: 16 K bytes
was considered large and 64 K bytes could
only be found in supercomputers. All of
this meant that programs had to take advan-
tage of what little space was available.
On the other hand, programs had to be
written to run as quickly as possible in
order to make the most efficient use of the
large computers. Of course these two goals
almost always contradicted each other,
which led to the concept of the speed
versus space tradeoff. Programmers were
prized for the ability to write tricky, effi-
cient code which took advantage of special
idiosyncrasies in the machine. Supercoders
were in vogue.
Fortunately, hardware evolved and be-
came less expensive. Large memories and
high speed became common features of most
systems. Suddenly people discovered that
speed and space were no longer important.
In fact the roles had reversed and hardware
had become the least expensive part of
owning a computer.
The costliest part of owning a computer
today is programming it. With the advent
of less expensive hardware, the emphasis
has shifted from speed versus space to a new
tradeoff: programmer cost versus machine
cost. The new goal is to make the most
efficient use of a programmer's time, and
program efficiency has become less impor-
tant — it's easier to add more hardware.
There are some important observations
that should be made concerning modern
programming. First, the majority of the cost
involved with a particular program centers
on maintenance and revision rather than
initial development. For example, an average
program may take three working months to
write but can have a lifetime of up to ten
years or more, during which dozens of
changes may be needed. These can easily
add up to several years of labor.
It is also interesting to note that the
largest portion of the time spent in revising a
program is tied up in analysis of the existing
code by the revising programmer. This is the
time needed for the programmer to break
into a piece of code.
Even in the development phase, the largest
portion of time is not usually spent on
designing or coding, but on debugging.
The actual programming takes up very little
of a programmer's time in comparison to all
of these other program side effects.
Unfortunately, although hardware has
evolved rapidly, software techniques have
not followed suit to the same degree, since
the first high level languages were intro-
duced. Witness that two of the most popular
languages in use today, FORTRAN and
COBOL, are relics of the late 1950s.
Structured programming is an attempt
to modernize software development and to
reduce the side effects that divert so much
programmer time from actual programming.
The main thrust of structured programming
is to shift the emphasis of the development
phase to careful design in order to reduce
debugging time and increase program organ-
ization. In addition, special coding tech-
niques make programs easier to revise. The
use of structured languages, such as Pascal,
makes programs more reliable by permitting
August 1978 © BYTE Publications Inc
143
3 rove
ervice to our customers we
have installed a toll-free
WATS line in our
^Peterborough, New
Hampshire office.
If you would
J ike to order a
^subscription to 1
^ BYTE, or if
Toll-free
:
BYTE's New
Subscriber
W.A.T.S. Line
(800)258-5485
We thank you and look
forward to serving you.
you have a
question relat-
ed to a BYTE
subscription/
you are invite
to call*
(800)258-5485
between 8:30 AM and
4:30 PM Eastern Time.
*Applies to calls made
from within the
continental US
only.
!iUiAg-fl-flXOAflJl-OXfl-gJlJJLiLfiJULfi-a-B-A- ^ad.
91 7?
isuuuum
"PET"
IMMEDIATE DELIVERY
Advanced 8K Model
-only $795
No computer know-how needed! Uses extended "BASIC". Self-
contained with its own 9" video display, built-in keyboard, and
digitally controlled cassette recorder. Complete with 14K operat-
ing system and 8K memory built-in (expandable to 32K).
APPLE II
In stock from $970
Apple II is a completely contained computer system, with BASIC
in ROM, full ASCII keyboard in a lightweight molded carrying
case. Expandable to 48K.
Apple II, the personal computer with color!
IMSAI VDP 80 — desk top business system with 32K, II dual den-
sity floppy disk and CRT. List - $7,000
Limited time only $5,295
PERIPHERALS
PERIPHERALS
For PET
For APPLE
PET 2020 Impact Printer - $595
Expandor Printer - $425
32K Memory Expansion -$595
Centronics 799
Serial Interfaces from $169
Printer $995
Apple II Disk $495
Plus hundreds of software programs too numerous to list!
THE COMPUTER FACTOR*
790 Madison Ave. (cor. 67th St.)
New York, NY 10021 212-PET-2001
Open 10-6 pm Tuesday - Saturday 212-249-1666
compilers to build more self-checks into the
programs they generate.
This sounds like salvation to companies
which have to hire expensive programmers
and analysts, but what does this extra effort
do for the personal computer enthusiast?
Consider that the development of the
personal computing industry has paralleled
that of the entire computer industry, but in
miniature. Early personal computers were
small and speed versus space was the most
important factor. As costs came down,
however, larger memories and higher speeds
in processors became common. Programming
is a spare time operation for many personal
computer experimenters; structured pro-
gramming can help to optimize the pro-
grammer's use of this valuable commodity.
The difficulty comes in changing old habits
and using self-discipline.
There is an anomaly present in the per-
sonal computing industry: fourth genera-
tion hardware is the rule rather than the
exception, but experimenters are still using
software, such as BASIC and line oriented
editors, which is based on 1 5 year old designs
left over from the second generation of com-
puter hardware.
We have a chance to learn from the
mistakes of the mainline computer industry,
where people have been digging their way out
of the second generation for several years.
We have a fresh, new chance to do things
correctly.
Structured Techniques
Structured programming is a collection
of coding and design techniques that guide
programmer efforts into the production of
organized, well formed, reliable programs.
Unfortunately, this miracle can only come
to pass if the techniques are used properly.
Structured techniques are often referred
to as being top-down in nature. This classi-
fication is really misleading since, in actual
practice, both top-down and bottom-up
methods are used. Top-down techniques
refer to methods which begin with the
overall problem to be programmed and,
through successive steps, break it down into
smaller, more workable subproblems.
Bottom-up methods take the opposite
approach by starting at the detail level
and concatenating small units to form
larger units, repeating the process until the
solution for the entire problem is formed.
This is the building block approach.
Program development is broken into two
phases by structured techniques: design and
implementation. During the design phase,
which is the emphasized portion, the
methods used are primarily top-down in
144 August 19786BYTE Publications Inc
Circle 71 on inquiry card.
nature. The implementation phase, however,
uses mostly the bottom-up approach.
Analysis of any problem is most logically
done in a top-down manner. No one would
try to solve a word problem in algebra by
taking a group of mathematical symbols
and trying to fit them together in the hope
that an appropriate formula will appear.
Such a formula would probably solve only
a few special cases or, if it were general,
would probably contain several extraneous
terms. Even so, this is exactly what happens
when people write programs in a bottom-up
style, starting out by writing code and not
considering the overall design until later.
Our first rule in structured programming
thus is: sit down at the beginning and analyze
the problem in a top-down manner. Break
it down into smaller portions so that the
overall organization remains clearly visible.
This is the guiding philosophy of the
entire design process, the end result of which
is a properly coded program. The major
techniques used here are stepwise refine-
ment and stepwise decomposition. It should
also be noted that this process is not purely
top-down in actual use. The experienced
programmer knows what is possible and
what is not. Such a programmer employs a
form of look-ahead along with the top-down
techniques in order to avoid impossible
designs. Possible coding schemes are con-
stantly being considered while the design
is under development. Properly used, this
technique can be a valuable evaluation tool
and can greatly speed up the design process.
The important point is that such a pro-
grammer should not get so involved in
coding that the top-down approach is com-
pletely abandoned.
Implementation is best done through
bottom-up techniques. Going back to the
algebra problem, we can see that, once we
have a well written formula, it would be
illogical to try to plug in all of the numbers
and do all the computations at once. The
best approach is to start with single com-
putations, verifying each one, and build on
them until a solution is obtained.
Once the design is completed, the inde-
pendent, bottom level program modules are
implemented and tested first. Higher level
routines are built using these subroutines
until the program is eventually constructed
and the final verification takes place.
Surprisingly, careful design and imple-
mentation in this form does not take consid-
erably more time than program development
using the older approaches. Some restraint
on the part of the programmer is needed,
but once the results are seen, it's hard to
imagine why anyone would want to con-
tinue using the old, unorganized methods.
Circle 79 on inquiry card.
BUSINESS PROGRAMS FOR
TRS-80
ON CASSETTE, READY TO RUN
FOR LEVEL-I.4K:
6-FUNCnON CALCULATOR: One punch of CLOAD transforms your TRS-80 into a
powerful printing calculator. Runs (orals on 3 columns (displayed) simultaneously. Takes
square root, etc, at the touch of a key. Data can be rotated from column to column to
implement a Grand Total function, or for storage. Scrolls automatically $14.95
LOAN PAYMENT COMPUTATION: (Installment and Mortgage Loans) Analyzes principle
and interest allocation Computes payments required to amortize, etc. This is a full
professional tool, for use by escrow officers, loan officers, etc $14.95
CASH FLOW PREDICTION: Monthly long and short term projections from past
history S14.95
FOR LEVEL-II, 4K:
DECIMAL-OCTAL-HEX CONVERSIONS AND ARITHMETIC: Go from any base to any
other. 4- Function Calculator in Octal and HEX $1 7.95
LOAN PAYMENT COMPUTATION FOR LEVEL-II: Same as above but with the
number crunching capability of Level- 1 1 $17.95
CASH FLOW PREDICTION FOR LEVEL-II: Same as above but handles larger
amounts $1 7.95
LEVEL! PROGRAMMER REFERENCE CARD SI. 25
ROM ERROR CHECK TAPE, LEVEL-I S3. 95
Write for catalog of full Business Programs for the TRS-80. Ours are serious, practical, easy
to use.
CUSTOM SOFTWARE: We will write, patch, link or modify programs to your
specifications.
All programs accompanied by detailed, clearly-written instructions.
CONTRACT SERVICES ASSOCIATES
1846 W. Broadway Anaheim, CA 92804 (714)635^055
21) YliARS 01 PROii-SSIONAL SliRVKi-
5
1976/1977
KITE
Cover Price *
plus postage
and handling
Back Issues for sale
III
The following i~;-ue. svailable:
'76 77
July March
August May
October June
November July
December August
September
October i
November i
December I
= * Cover price for all issues thru August 1977 j
3 is $1.50 plus $.25 postage and handling ;
= ($3.50 total foreign). September '77 thru j
a December '77 issues are $2.00 plus $.50 i
j postage and handling ($4.00 total foreign).
fniiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiimiiiiMiiiiiE
Send requests to: BYTE Magazine
70 Main St
Peterborough NH 03458
Attn: Back Issues
Augusl 1978 ©BYTE Publications Inc
145
Circle 95 on inquiry card.
CP/M™
LOW-COST
MICROCOMPUTER
SOFTWARE
CP/M™ OPERATING SYSTEM:
• Includes Editor, Assembler, Debugger and Utilities.
• For 8080, Z80, or Intel MDS.
• For IBM-compatible floppy discs.
• $100-Diskette and Documentation.
• S25-Documentation (Set of 6 manuals) only.
MAC™ MACRO ASSEMBLER:
• Compatible with new Intel macro standard.
• Complete guide to macro applications.
• $90-Diskette and Manual.
SID™ SYMBOLIC DEBUGGER:
• Symbolic memory reference.
• Built-in assembler/disassembler.
• $75-Diskette and Manual.
TEX™ TEXT FORMATTER:
• Powerful text formatting capabilities.
• Text prepared using CP/M Editor.
• $75 Diskette and Manual.
1 D.G.TflL RESEARCH
P.O. Box 579 • Pacific Grove, California 93950
(408) 649-3896
We speak your
language
And we're giving you what you want.
• a comprehensive product line. Hardware, assembled or
kits, and software from major manufacturers. Plus books and
current literature. Financing available.
• a trained, enthusiastic staff. We'll help you choose or
design the system that's right for you. No high pressure here.
• service when you need it. We won't sell you something
we can't keep running.^^^
• a brand new facility
in Pennsylvania.
We'll be able to
serve our South Jersey-
Pennsylvania customers
more efficiently now.
• a bigger, better New
Jersey store. We've
enlarged our showroom
in Iseun. Now there are
more displays you can
try out. There's more
room to stock the
products you need.
E3
The Microcomputer People. M
Computer Mart of New Jersey
Computer Mart of Pennsylvania
Pennsylvania Store
550 DeKalb Pike
King of Prussia, PA 19406
215-265-2580
Tue.-Thur. 11:00-9:00
New Jersey Store
501 Route 27
Iselin, NJ 08830
201-283-0600
Tue.-Sat. 10:00-6:00
Tue. & Thur. til 9:00 Fri. & Sat. 10:00-6:00
(our only locations)
Now that we have a feeling for what
structured programming is, let's take a close
look at some of the techniques mentioned
earlier.
Stepwise refinement is a top-down
approach to program syntax. The concept
of refinement refers to the language used to
describe the solution being programmed. We
start with some very general statements
about what the program or routine is sup-
posed to do, then work down through
several levels of specification using more
detailed language at each new level as shown
in figure 1 .
The end result of refinement is a coded
version of the program or module. In order
to apply refinement, it is necessary to have
previously specified (at least in part) how
the program is to be broken down func-
tionally. Another technique, called stepwise
decomposition, is responsible for deter-
mining how the program is split up. It will
be examined later in this article. In general,
refinement takes place simultaneously with
decomposition, but is usually one or two
steps behind with regard to level.
Completely different from the end result
is the goal of stepwise refinement, which is
to reduce the complexity of program devel-
opment by organizing it into a sequence of
manageable steps through the establishment
of stable levels of complexity during the
design. Once each new plateau of com-
plexity is reached, work can begin on
developing the next plateau. This is similar
to the way a mountain climber scales a peak:
a series of base camps must be established,
each one providing a jumping off point for
the next day's climb and, in the event of
failure, a safe haven to return to for the
night. No one would consider climbing
Everest in one unbroken effort. There's
simply too much mountain there to do it all
at once.
Amazingly enough, many programmers
still attack mountainous programs with a
single effort approach. But there's simply
goal
SPECIFIC6TI0N
PSEUDOCODE
CODE
Figure 1: Stepwise refinement of problem.
We begin with the high level goal statement,
which contains few details. As we step down
through each lower level, more details are
added until, at the fourth level, we have a
coded program or module.
1 46 August 1978 © BYTE Publications Inc
Circle 76 on inquiry card.
too much information in a large program;
the human mind can't absorb it all at once.
Even though the resulting program may run,
its own author probably couldn't explain the
whole thing and certainly would not be able
to guarantee it to be error free.
How many levels are needed in the devel-
opment of a program? This depends on the
size and complexity of the program, but in
general a minimum of four levels is required.
These levels are the goal, specification,
pseudocode and code levels.
When you decide to write a program, the
first thing you should do is write down the
goal you have in mind for that program. If
you can't write the goal in words, you prob-
ably don't have a clear enough picture of
what you want to do in order to write a
program.
Once you've written the goal, step back
and take an objective view. Is it too broad,
too grandiose, too narrow, too simple?
Writing, "This program will be used to bal-
ance my checkbook," is one thing, but,
"A program to keep track of cash flow
through the entire household," is a com-
pletely different matter. The first could be
written for a programmable calculator, the
second involves establishing a complete data
base system.
A great deal of frustration and disap-
pointment could be saved just by writing out
the goal and examining it. For a roulette
game, a well written goal might read as
follows.
"This program will simulate the game of
roulette as played by Monte Carlo rules. It
will permit up to five players to bet at one
time and will use a free form input scheme
to simplify the betting process."
In the first sentence, the main goal has
been specified and some secondary points
have been put down. Note that the goal is
not too specific, since the details are sup-
posed to be held off until the specification
level. As stated, this program is reasonably
difficult, but not impossible.
After a satisfactory goal is set, then
comes the specification, which is broken
into three parts: input, output, and strategy.
Most good programmers have at least once
made a statement something like, "If you've
got a complete description of what comes
into and what goes out of a program, the
rest is just adding what runs in between."
Writing a program is, regrettably, not that
simple, but it would be much more difficult
to write it without knowledge of just how
the input data will look or what the output
is supposed to be. The specification level
provides this and permits us to jot down
some rough ideas about how the processing
will take place. Table 1 is one possible
example for the roulette program.
Obviously, this is not a complete descrip-
tion of the IO, but it is reasonably good. If
we were actually writing this program, the
specification would be more detailed and
several examples would be included. Similar
items that can appear in the IO description
are card layout forms, disk file formats,
record descriptions and so on. If this were a
subroutine, our IO specifications would also
describe the parameters passed to and from
the calling routine.
The strategy is important here, since this
is really the second level of the process
refinement. Note that there are no system or
language dependent statements in the
strategy. We should be able to take any task
from the specification level of a program
description and implement it on any system
(with enough resources) without having to
change the way we have written it.
Once again, step back and examine what
has been done. Is the strategy too detailed,
is there enough detail, is it dependent on
special system or language features, is it too
complex? The last item is important: if the
answer is yes, the problem has not been
properly decomposed. We must go back to
the decomposition and reexamine how we
Input:
Initial number of players: integer between one and five inclusive.
Player names: string truncated at 15 characters.
Yes/no answers: strings truncated to one character.
Bets: string up to 72 characters long of form: integer number bet value on bet
keywords. All extraneous words and symbols are ignored. Instead of a bet, the
special keywords quit and pass may be input.
Bet keywords: numbers separated by commas.
12H, 12M, 12L (dozens)
12A, 12B, 12C (columns)
low, high (halfs)
odd, even
red, black
Output:
Number of players question.
Players name requests.
Instructions needed question.
Instructions.
Bet requests.
Results and winnings statements.
Bet error messages.
Goodbye message.
Strategy:
After the startup sequence, go into a loop to input the bets. Process each bet by
scanning through the string looking for quit, pass, or digit. Set the quit or pass
flags if either is found and go get the next bet. If a digit, continue picking up digits
and converting to decimal until on is seen, then scan for keywords. Once the com-
plete bet is processed, check for validity. Either accept the bet or print an error
message. Select the random winning number, determine who won or lost and print
the results, checking quit and pass flags for special action. Restart input loop if any
players remain, else stop.
Table I : This is the rough sketch of the roulette game which will be used to
develop the program. The rough sketch should define what the input and
output of the program are going to be and the general workings of the pro-
gram. It should be very general and give an overall view of the project.
August 1978 © BYTE Publications Inc
147
have divided the processing. (Better to back-
track at this stage than after we have gone
further and found the problems to be
unmanageable.)
I n the next phase of refinement we try to
get even more specific. On large programs,
which may need more than four levels, the
extra levels may appear at this point. Any
program that requires multiple pseudocode
levels has probably been improperly decom-
posed. A well formed program seldom needs
Begin program.
Ask how many players.
For as many players as there are,
Get each player's name.
Ask if instructions are needed.
If yes, output the instructions.
While there are still any players left,
For as many players as there are.
Repeat until a valid bet is obtained:
Get the player's bet.
Scan the bet.
Check bet for validity.
Determine the winning number.
For as many players as there are,
If player quit, process the quit.
If player passed, process the pass.
If player bet,
Determine whether player won or lost.
Process this accordingly.
End program.
Listing I : Pseudocode for roulette program. This level of design is used to
roughly determine what the program should be doing. It should not con-
cern itself with the low level aspects of the program.
begin ("program*)
askhowmany (players);
for player : = 1 to (*as many*) players (*as there are*) do
getname ((* of*) player, ("into") playerlist);
askif (yes) ("instructions are needed*);
if yes then printinstructions;
p/ayersleft : = true;
while (*there are still any*) playersleft do
begin (*betting*)
for player : = 1 to (*as many*) players ("are there are") do
repeat
getbet (("of") player, ("in") playerlist);
scanbet (("of") player, ("in") playerlist);
checkbet ((*of*) player, ("in*) playerlist,
(*to see if*) valid);
until valid (*bet is obtained*);
determine (winningnumber);
for player : = 1 to ("as many*) players ("as there are") do
begin ("processing results*)
if quit (("by") player, (*of*) playerlist)
then processquit (("by") player, (*of *) playerlist,
('updating*) players, ("and*) playersleft);
if pass (( "by *) player, ("of*) playerlist)
then processpass ( ( *by * ) player, ( *of * ) playerlist);
if bet ((*by*) player, (*of*) playerlist)
then processbet ((*by*) player, (*of*) playerlist,
("using*) winningnumber)
end ("processing results*)
end ("betting")
end. ("program*)
Note: The delimiters (*and*) are used in this listing to indicate comments. Although
the Pascal defined symbols are { and } , most output devices do not have these symbols
available. Therefore the parentheses and asterisks are substituted.
Listing 2: Pascal program for the roulette game. This is the main program
which calls many other subprograms to perform the low level logic. Notice
the similarity between this program and the pseudocode of listing 7.
more than the usual four levels of refine-
ment. At this level we may add some system
dependent features but we should still try to
avoid language dependencies. Our pseudo-
code description should thus use a wide
range of constructs freely, since we can al-
ways break these down into whatever con-
structs our chosen language actually has.
Using a wide variety of powerful constructs
permits us to think and design more freely,
free of the worries of particular language
forms.
Many people use a form of ALGOL to
write their pseudocode, because the block
structure of ALGOL lends itself nicely to
structured pseudocoding. At limes, this
ALGOL type language looks more like a
version of Pascal, especially if the program-
mer is accustomed to Pascal. But the dif-
ferences are minor because the two lan-
guages are similar and a good pseudocode!"
tries to eliminate language dependencies
anyway.
The pseudocode for our roulette game
looks something like listing 1. This is still
at a fairly high level, but is much closer to
being a program than the strategy was. The
pseudocode shown uses indentation to indi-
cate blocks rather than begin and end pairs
as in Pascal. This provides a graphical repre-
sentation of the structure of the program.
When indented properly, good pseudocode
can be used in place of flowcharts, and is
often more easily understood.
A good rule to follow when writing
pseudocode is to make it understandable to
almost anyone, including nonprogrammers.
If you can convince someone that they're
going to run a roulette table for people bet-
ting via Teletype, they will probably have no
difficulty in understanding the roulette pro-
gram pseudocode. This is an important test.
If another person can successfully interpret
your pseudocode and, using it, play the part
of the computer without running into pro-
blems (bugs), then it is well written.
When the pseudocode for a module is
completed, it is a relatively simple matter to
flesh it out by adding the right words and
proper punctuation for whatever language is
being used.
Converting our pseudocode to Pascal, for
example, would produce something like
listing 2.
This is indeed a high level Pascal program.
It takes advantage of the ways in which
Pascal permits procedures, functions,
Booleans and comments to be used, in order
to produce actual code that is not much
lower than pseudocode. Most of the work
done in this program is by procedures and
functions defined elsewhere. This is a sign of
good decomposition.
148 August 19786BYTE Publications Inc
Circle 265 on inquiry card.
A main program should very seldom have
to exceed more than one or two pages in
length. If it does, it is probably too complex,
and more of its operations should be con-
solidated into subroutines. Breaking pro-
grams up into manageable pieces is the idea
behind stepwise decomposition. As I men-
tioned earlier, decomposition is the other
half of the design phase. Now that we've
concluded our development of stepwise
refinement, let's take a closer look at
decomposition.
Decomposition
Stepwise decomposition is a top-down
approach to program semantics. Using
decomposition, we examine the meaning of
a program segment to determine its function
with regard to the whole program. Our pur-
pose in doing this is to determine the com-
plexity of the function in order to see if it
should be further decomposed. Decompo-
sition refers to the breaking up of program
functions to reduce their complexity and
increase manageability.
The end result of stepwise decomposition
is that all program functions will be reduced
to a set of simple, isolated subroutines as
shown in figure 2. Like refinement, how-
ever, the goal of decomposition is to provide
a sequence of levels, like mountaineering
base camps, which reduce the design process
from a single, giant leap to a series of short,
easy steps. Unlike refinement, there is no
usual number of levels required to fully de-
compose a program. The size and complex-
ity alone determine how many levels of
breakdown will be needed for a program, be
it two or 20. The reason for this is apparent
if we note that refinement follows a few
steps behind decomposition. With refine-
ment we have the advantage that we will
LEVEL I
LEVEL 3
LEVEL 5
Figure 2: Stepwise decomposition of prob-
lem. We begin with the entire problem,
breaking it into smaller subproblems. This
process is repeated through as many levels as
needed, until we are satisfied that all of the
resulting modules are as independent and
primitive as necessary. Note that not every
module has to be decomposed to the same
depth.
Need Hard Copy?
TRY OUR SOFT PRICES
$425
Complete standalone 40 column impact dot matrix printer with a 64
character ASCII set. Includes power supply, casework and interface
electronics for connection to a mini'micro processor parallel port
Serial interface versions for RS232 'current loop applications start at
S575 in sinqle quantity
SEND FOR FREE LITERATURE
Box 22101
Sail Lake City, Utah 84122
(801) 364-2411
The
original
people
Hands on microprocessor short course
with FREE take home microcomputer
included in the $499 tuition.
Sep. 25, 26, 27, 28, 29 Lafayette, IN
Oct. 2, 3, 4, 5, 6 Washington, DC
Oct. 23, 24, 25, 26, 27 Philadelphia, PA
Nov. 13, 14, 15, 16, 17 Palo Alto, CA
Dec. 11, 12, 13, 14, 15 Albuquerque, NM
Jan. 15, 16, 17, 18, 19 St. Petersburg, FL
Advanced Programming Course:
Nov. 27, 28, 29, 30, Dec. 1 Lafayette, IN
Learn microprocessors first hand
from the original hands on people.
For more information call Jerilyn Williams,
(317) 742-6802 or write Wintek Corp.,
902 North 9th Street, Lafayette, Indiana 47904.
wivn i:
6800 Hardware/Software
Custom Hardware/Software
In-house short courses
Circle 393 on inquiry card.
August 19786BYTE Publications Inc 149
Figure 3: Strongly connected modules. The
broad communication paths defeat the
purpose of separating functions into
modules. In addition, this permits errors
caused by program changes to propagate
throughout the entire program.
always be working on simple, decom-
posed program modules which should never
exceed a certain level of complexity. Decom-
position, on the other hand, is used for
breaking new trails and is applied to prob-
lems with an arbitrary range of complexity.
Since there are no fixed decomposition
levels, we must have some rules that specify
under what conditions a new level should be
created. Because programming is not an
exact science, our rules are not like laws that
must be obeyed, but are rather heuristics or
rules of thumb which guide us as we work
through a design.
Before we can set up these rules of
thumb, we must consider two important
characteristics of program modules on which
they will be based. The first is the connec-
tivity of a module and the second is its func-
tional relationship.
Connectivity refers to the number of
channels of communication between a
module and the rest of the program. A
module which has many links to other parts
of the program is said to have high connec-
tivity, while one with few links has a low
degree of connectivity.
The level of internal functional relation-
ship is a description of how the processes in
a module relate to each other. These proc-
esses are said to be highly related if they are
all involved in providing the overall function
of the module. A group of processes which
do not contribute to the module's function
is said to have a low functional relationship
with regard to the module. The overall level
of relationship throughout the module is
called its cohesiveness.
Now that the terms and definition have
been set forth, let's take a closer look at
these two characteristics and see how they
relate to structured programming.
Programs whose modules are connected
by large numbers of communications paths
are obviously more complex than those with
only a small number of intermodule links.
Modules which depend heavily on other
modules, as in figure 3, are difficult to work
with because understanding them also
requires a complete understanding of all the
modules upon which they depend or which
depend upon them. This can develop into a
chain reaction, requiring the programmer to
design the entire program at the detail level-
often an impossible task.
Another negative result of high connec-
tivity is that a change in any module can
cause effects which ripple throughout the
entire program. The numerous, broad com-
munication channels do nothing to restrict
the propagation of errors from one module
to another. Since the goal of structured pro-
gramming is to reduce complexity and
errors, our design efforts should strive to
reduce the number of intermodule connec-
tions, as in figure 4.
Modules are usually of two sorts: sub-
routines (procedures and functions), or
blocks of code within a program. They can
communicate through shared variables, com-
mon data areas, formal parameters, and even
by flow of control. (Shared variables and
common data areas produce strongly con-
nected programs as in figure 5.) The in-
formation communicated via these paths
can be divided into two types: that which
affects data, and that which affects flow of
Figure 4: Weakly connected modules.
Narrow lines of communication enhance
the black box qualities of modules. They
also serve to Isolate the effects of errors to
small sections of the program.
1 50 August 1978 © BYTE Publications Inc
Figure 5: The effect of common or shared
data. Each module is strongly connected to
every other module which has access to the
data, to the point that there is very little
isolation. Any action by any module can
thus have serious effects on the rest of the
modules. Note the similarity to strongly
connected modules.
of how the receiving module works. Thus,
pure data communications are preferable.
In addition, data can be further divided
into two types: broad scope and narrow
scope data. Broad scope includes such things
as global variables, common data areas, and
shared data, as represented by figure 5.
Narrow scope data is characterized by formal
parameters passing between subroutines,
which produce less complex connections
since these are very specific. In contrast,
a change made to one of the broad scope
forms can affect all modules connected to
it, possibly without their knowing that this
has occurred. Broad scope data also adds
the problem of determining which module
is permitted to modify the common data.
Is unanimous consent by all connected
modules required, or do we run our pro-
gram under a democracy? For these and
other reasons, broad scope data can be
problematical.
Let's summarize what our most desirable
configuration would be. All modules would
communicate by passing minimal amounts
of simple data through well defined formal
control. The paths themselves can be of two
forms: those which connect to a module,
and those which connect to something inside
a module. The various means of communica-
tion are illustrated in figure 6.
The level of connectivity for a path is
determined by the complexity of the infor-
mation communicated, the type of informa-
tion, and the type of path. Connectivity
would be almost impossible to evaluate,
quantitatively, but, qualitatively, we can
see that some types of connection are
worse or better than others.
To be specific, simple connections are
better than complex ones, paths which talk
to modules are better than those which
talk directly to internal processes, and
communications that affect data are pref-
erable to those which affect flow of con-
trol. By far the worst form of connection
is that in which one module modifies the
internal code of another, since this re-
quires that the modifying module "know"
how the subject module works at the machine
level. Thus, any programming changes done
to the subject would also require changes
to the modifier.
Externally connected paths are rated
higher than internally connected ones, since
at all times the entire module should be able
to supervise any communications. Internal
connection bypasses this and makes it im-
possible for the module to be sure of its
internal status at any time. Communications
that affect the flow of control require that
the sending module have some knowledge
Figure 6: Types of communication. Figure
(a) shows simple external connection, which
is the most desirable. In (b) we have simple
internal connection. Figure (c) is complex
communication. With (d) we see communi-
cation in which one module modifies the
internal workings of another. Lastly, figure
(e) shows the worst type of communication:
a complex combination of all the other
forms.
August 1978©BYTE Publications Inc 151
parameters; in other words, minimal con-
nectivity. Obviously this requires that the
modules be broken down so that each
provides one simple, dedicated function.
Now we're ready for a further look at
cohesiveness.
The relationships, which processes inter-
nal to a module can have with respect to
the module and with each other, have been
broken down into six classes. These are
listed in order of weakest relationship to
strongest.
• Coincidental.
• Logical.
Temporal (or time-wise).
Communicational.
Sequential.
Functional.
Wc can see from our discussion of con-
nectivity that it is highly desirable to com-
pose modules such that all of the internal
processes are directly related to the specific
function of the module. Such processes are
functionally related, as illustrated in
figure 7.
W
Q
P
Z
H
L
Figure 8: Classes of relations. Coincidental
relation is shown here, in which separate
processes are unrelated except that they
reside in the same module.
M
Ml
M2
M3
M4
M5
Figure 7: Classes of relations. Fhe strongest
form of cohesiveness is the functional re-
lation wherein every process is integrally
involved in providing the overall function
of the module.
With regard to cohesiveness, then, the
higher the level the better. We should attempt
to design modules such that their internal
processes are as strongly related as possible.
Now let's examine the weaker classes of
relationships.
Coinciclcntally related processes, shown
in figure 8, are totally unrelated except for
the fact that they reside in the same module.
This is the weakest form of relation, and any
module composed in this way should be
broken apart into separate processes.
Logically related processes, shown in
figure 9, have no real relation to each
other except that they perform similar func-
tions and thus get grouped together to form
a module. Once again, this should be broken
down into smaller modules.
Processes which are temporally related,
Figure 9: Classes of relations. Shown here is
logical relation, in which processes are
grouped together because they have similar
functions.
Figure 10: Classes of relations. In a temporal
(time) relation the similar processes can
execute in any order, effectively in parallel.
as in figure 10, are almost identical to
those which are logically related except that,
in addition, they can all be executed at one
time. A common example is the initializa-
tion routine found in many programs. Much
of what is considered to be initialization
by many people could actually be done
much later in the program and could be
distributed among the modules.
Processes related by communication are
those which have been grouped into a single
module because they share data in some
way, as seen in figure 11. This is a stronger
152 August 1 978 @ BYTE Publications Inc
relationship, but consideration should still
be given to breaking up such a module. A
common solution to this problem is a master
module which holds the data and formally
passes it to each of the submodules as
needed.
Figure 7 7: Classes of relations. Processes
can communicate with each other directly or
through common data in a communication
relation.
Sequentially related processes, figure 12,
are those which execute in sequence, each
one creating data to be used by the next.
Obviously such a module can be split apart
and the resulting submodules called in
sequence with the data passed as param-
eters. This has the added advantage of
making these elementary processes directly
accessible to the rest of the program.
\
A
^r^
I )
B
1 j
r
C
A^
Figure 12: Classes of relations. A sequential
relation wherein the first process generates
data required for input by the second, and
so on.
We can again summarize what our ideal
module will look like. It will be minimally
connected to the rest of the program and
will have a high degree of internal cohesive-
ness. This means that each of our modules
should perform one specific function and
should not contain any extraneous proc-
esses. In addition, they should communicate
solely via simple, well defined, narrow
interfaces — preferably by passing formal
Art -by-Computer tm is herei
Fi I.
Fi le 3
B I ack-on-wh i te, 9 3/4H by 12 3/4W reproductions
of computer generated designs. See Jan 78 Byte
or phone or write for a brochure.
Set of 12: $20.00, singles $2.00 each. Minimum
order: 2 prints. Orders less then $10.00 and
al I orders from outside continental U.S. add
$2.00 postage and hand I i ng . Payment must be
in U.S. dollars. California residents add 6%
sales tax. Send check or money order to:
Le I and C. Sheppard
PO Box 60051, Dept. B
Sunnyvale, California 94086.
Also available at selected retaj I outlets.
LCS, 1978.
Software
Games • CRAPS (Las Vegas style) $6.00
MULTIPLE LUNAR LANDER $8.00
SLOT MACHINE $6.00
GAME PACKAGE: Russian Roulette, Mad
Scientist, and ABM $8.00
Graphics .. PiCTURE MAKER with AMPa ANNY $12.00
GRAPHICS PACKAGE I: Laser Beam, Space
Shuttle, and Blast Off $10.00
GRAPHICS PACKAGE II: Rain in Greece, Flea,
Textwriter, Random Walk $10.00
Scientific • FOURIER FIT: Does curve fitting $15.00
Systems • RANDOM NUMBER GENERATOR TEST $5.00
HEX MEMORY LOADER $10.00
MEMORY DUMP PROGRAM $10.00
MEMORY SEARCH $5.00
All Programs Written in BASIC
Complete Easy to Read Documentation
Programs Completely Tested
SOFTWARE RECORDS
P.O. BOX 8401 -B
UNIVERSAL CITY, CA 91608
(cal residents add 6% sales tax)
Circle 330 on inquiry card.
Augusc 1978® BYTE Publications Inc
153
parameters. The result is a program com-
posed of plug-in modules that act like black
boxes. Such a program is relatively easy
to change, because each function has been
carefully isolated. Modification then becomes
primarily a matter of module plugging, and
the effects of any new bugs will be con-
fined to a relatively small portion of the
program. Recall that easy program modifi-
cation and the reduction of side effects
were two of the major tasks we were
trying to accomplish through structured
programming.
Finally, we can list those decomposition
heuristics which were mentioned earlier
and many of which should be apparent
by now.
One good technique for determining
whether a module is sufficiently cohesive
is to write a sentence describing its purpose.
If the sentence has to be a compound
sentence, the module is probably doing
more than one thing. Usually this will
be obvious just by looking at the sentence.
Incidentally, this can become the goal state-
ment for use in the refinement process.
Carefully examine modules which result
in fewer than five or more than 100 source
statements of code. This often indicates
improper decomposition.
Avoid initialization modules wherever
possible. These reduce the black box qualities
of many modules.
PROJECTILE
HEIGHT
I
2
3
4
GET
DATA
MAXI MUM
HEIGHT
PUT
DATA
TIME TO
MAXIMUM
HE IGHT
5
6
7
SQUARE
FUNCTION
SINE
FUNCTION
Examine your design for duplicate
functions. After eliminating these, if any
duplicate code remains, it is probably
needed.
Watch out for modules which are called
by or which call a large number of other
modules. This often indicates some problem
in the decomposition.
Modules that perform similar functions
probably contain duplicate subfunctions.
If these common functions can be isolated,
the differences can often be incorporated
into the calling routines.
Don't hesitate to over-decompose a
module. It will be easy to recombine func-
tions later, but it may require a major re-
write if further decomposition is found to
be necessary after the design has proceeded.
There is one area in which structured
programming truly shines: documentation.
If we've done our design properly, there
isn't any need for additional documentation.
This may sound a bit outlandish, but
consider what our refinements have really
produced. The goal statement makes a very
fine program abstract; the specification level
provides us with a complete technical
description, and properly indented pseudo-
code can take the place of the program
flowchart. By appropriately including parts
of the pseudocode in the code, as in the
roulette example, we end up with a well-
commented program. Little else is needed
except a chart of the modules and their
connections, as in figure 13, but this we
would have to do anyway in order to aid our
decomposition. Once we've finished the
design, we've also finished the documenta-
tion and we have a running program.
Structured programming is a collection
of techniques that help us organize pro-
gram development by reducing it to a series
of manageable steps. The end result is a well
formed, documented program which is easy
to understand and to maintain. In today's
busy world, the time and effort that can
be saved by practicing structured tech-
niques is of immeasurable value."
Figure 13: A module structure chart for a simple program which calculates
the greatest height reached by a projectile and the time it takes to get there.
Input
Output
1,
Initial velocity, angle
2.
Initial velocity, angle
Maximum height
3.
Maximum height, time to maximum height
4.
Initial velocity, angle
Time to maximum height
5.
Initial velocity or sine of angle
Square of input
6.
Angle
Sine of input
7.
Angle
Sine of input
REFERENCES
1. Stevens, W P; Myers, G J; Constantine, L L;
"Structured Design," IBM Systems Journal,
1974, number 2, pages 115 thru 139.
2. McClure, C L; "Top-Down, Bottom-Up, and
Structured Programming," IEEE Transactions
on Software Engineering, volume SE-1, number
4, December 1975, pages 397 thru 403.
3. Wirth, Niklaus; "Program Development by
Stepwise Refinement," Communications of
the ACM, volume 14, number 4, April 1971,
pages 221 thru 227.
1 54 August 1978 © BYTE Publications Inc
Circle 1 on inquiry card.
6800 SOFTWARE
Payroll $400
Math Package, 11% digit accuracy with
Fortran style formatting $100
Editor — Text Processor (with mailing lists & labels) $100
Inventory with Job Cost $400
other inventory programs from $200
Accounts Receivable $400
General Ledger $400
Stock Market-Club with Tax Reports $ 75
Digisector Software (scans twice as fast) $100
Custom Programming
Our Specialty
AAA Chicago Computer Center
3007'/ 2 W. Waueland Ave.
Chicago, IL 60618
Phone: (312) 539-5833
(3 P.M. - 5 P.M. only)
Continued from page 117
simulator in the system (see Kin-Man's
article "An 8080 Simulator" in the October
1977 BYTE, page 70), we did not have
much trouble debugging the run time
routines. During March most of our time was
spent in refining all the routines: revising
some features and extensions in the com-
piler, adding local optimization capabilities
in the translator and improving the effi-
ciency of the run time routines. The run
time routines, which perform all 16 bit
integer arithmetic and logical operations and
IO conversions, take only 1 K bytes of
memory.
The first step in the bootstrapping pro-
cess was to write the interpreter in Pascal
since it is the slowest but shortest program.
It was coded by straightforward translation
from the SASIC version. Debugging was
smooth and the entire program was up and
running within a week. Compared to the
BASIC version, the Pascal version runs about
15 times faster; slightly better than we
expected. Our next step will be writing the
translator and compiler in the Pascal subset.
After that, further development can be done
in Pascal without the BASIC interpreter.
For three months, each of us have been
spending about 10 to 15 hours a week on
this project. The first version (in BASIC) of
the compiler and supporting software were
completed with an estimated effort of two
working months. Considering such a short
time period and a functioning compiler,
we believe we are approaching the task
from the right direction. We hope that our
project will attract the attention of many
readers so that we can share our interest
and experience in Pascal with them."
Languages l : orum is a
feature which is intended as an
interactive dialog about the
design and implementation of
languages for personal com-
puting. Statements and
opinions submitted to this
forum can be on any subject
relevant to its purpose of
fostering discussion and com-
munication among BYTE
readers on the subject of lan-
guages. We ask that all corres-
pondents supply their full
names and addresses to be
printed with their commen-
taries.
why the last
is the best
It has the latest news for users
(and prospective users) of Heath
Co. computer products. It isn't
company- controlled--BUSS can get
new product information and tid-
bits about items being developed
before the official announcement
by Heath Co. But BUSS does more
than that--BUSS also lets you in
on news of compatible hardware &
software from other vendors. H8
and HI 1 users may save enough on
these products to pay for a BUSS
subscription several times over.
And users of the ET-3400 Trainer
aren't left out either.
The first issue of BUSS came out
more than a year ago in April of
1977. Every issue goes by first
class mail and almost all orders
for new subscriptions are filled
within two days. Back issues go
fast, but most of those for 1978
are still available. BUSS keeps
getting better. So send for it:
12 Issues For $ 6.80
The Independent Newsletter of Heath Co. Computers 325 Pennsylvania Avenue, S.E. Washington, DC 20003
Circle 36 on inquiry card.
August 1978 © BYTE Publications Inc 155
Let Your Fingers Do the Talking
Add a Noncontact Touch Scanner
to Your Video Display
Gispcis's
Circuit
Gellsp
Steve Ciarcia
Box 582
Glastonbury CT 06033
"Thanks for coming, Steve. I'm glad we
were finally able to schedule this meeting.
This problem we have is driving us crazy."
Fred scurried over to me in the waiting room
and shook my hand.
"Let's get you signed in at guard head-
quarters and then I'll introduce you to Ted."
This was the first time Fred and I had
ever met. But his look of relief told me he
thought I was some kind of engineering whiz
kid. I picked up my briefcase and we walked
to the guard's desk. The place was the proto-
type for a blue chip company waiting room.
Decked out with numerous perfectly
blended chairs and sofas, it gave the impres-
sion of slick tastefulness, and above all
money. Current issues of various news and
business magazines were arranged neatly on
the highly polished end tables. I imagined
somewhere within the inner depths of the
company walls a heavy walnut grained office
door with a brushed brass plate reading
"Customer Coordinator for Waiting Room
Impressions."
My "life in a big company" fantasies were
interrupted as I signed my name to the guest
card. Signing my name and title was the least
significant thing they had me do. There were
questions of citizenship, social security
number and sex, statements that I repre-
sented an equal opportunity employer, and a
list of subversive organizations to which I
might belong. The urge to check them all
and watch the bells and whistles go off was
curtailed by my basic marketing instincts.
I passed the card, which ultimately re-
vealed more information than even my wife
knew about me, to the guard. He frowned
and scrutinized the card carefully. The delay
was agonizing as he examined every detailed
answer.
"I'll have to inspect that briefcase,
buddy," he said.
Surely I'm no buddy of yours, sir, I
thought to myself. 1 fully expected the
frown I usually receive when my briefcase is
inspected at airports. The inspectors thumb
through the piles of paperwork and, upon
discovery of an issue of BYTE, quickly
cover up this unusually titled magazine and
gulp an embarrased "Next!" Much to my
surprise the guard seemed uninterested.
"OK, here's your visitor's badge. Remem-
ber, you have to be escorted at all times," he
said, and whisked me away with a sweep of
his hand.
Fred appeared relieved. I was now on the
inside and hoped I could help alleviate his
urgent problem.
"OK, Fred, what's your problem and how
can my company help you?" This was a
basic marketing question for our type of
business which specializes in technical solu-
tions through custom electronics — which
really means providing engineering con-
sulting to companies who have become em-
broiled in political debate over the latest
in-house technical fiasco.
"We'll get to Ted's office in a few seconds
and I'll let him explain. Basically we need a
black box."
Before I could get the functional require-
ments from Fred, we arrived at Ted's office.
Being introduced to Ted as "director of
marketing" elicited a certain degree of re-
spect, because in his company this was a
vice-presidential position. Ted motioned me
to a seat at his mahogany conference table
1 56 August 1978 © BYTE Publications Inc
Circle 178 on inquiry card.
near the window overlooking the company
golf course. After asking how we wanted our
coffee, he stated in a very businesslike man-
ner, "I presume Fred has filled you in on the
problem?"
Fred jumped in before I could answer,
"I'm sorry, Ted, I haven't had a chance to."
Ted stood up, rotated his body 90 de-
grees and pointed to the video display ter-
minal in the corner. "That's my problem! Or
rather the computer types downstairs who
program it!"
I looked at the display. It was a standard
graphics terminal similar to those available
from several manufacturers.
Ted continued, "Programmers program
computers for other programmers! They
never think of the user. I drag that terminal
to board meetings so we can review market-
ing figures, and I spend half my time enter-
ing 8 digit passwords, hitting escape and con-
trol keys to select options, and answering
endless quantities of mindless interrogation."
Ted was getting a little hot under the collar.
"Time is money in those meetings and here
in my office. I don't want to spend all day
playing true confessor with a computer! Its
function is to display information and that's
all the interaction I want."
Ted's problem was not unusual. Where a
program requires that the next entry be a
control R, one had better type a control R.
In higher level systems operators need all
kinds of cross reference manuals to commu-
nicate in the different languages.
"Look," Ted turned on the display and
typed the log-on password and terminal
identification. Various options were dis-
played. "This is what I mean. If I want one
of these options, I have to type a 5 digit
code, wait to give a particular file number
and then some other code."
As displays flashed on the screen I
couldn't help but offer the obvious ques-
tion, "Ted, why can't your programmers
just change the software to allow single or 2
digit entry?"
"That would be fine if the software
weren't already written. We're talking about
millions of dollars worth of software and I 'm
using only a small portion within a large
operating system. I want to be able to
choose what I want simply."
Ted needed a "black box" and he knew
exactly what he wanted.
"I want something to replace this key-
board for the limited specific application of
menu selection and display. Put a log-on
button on it. When I press log-on it will send
whatever information is necessary. The user
should know only that he or she has to log
into the system— that's all. Next, give me a
key that will send the necessary message to
IF QUALITY IS FOREMOST IN YOUR REQUIREMENTS
WE ARE PROUD TO OFFER THE HIGHEST QUALITY
DISKETTE DRIVE FOR THE FAIREST PRICE
FROM THE SAME PEOPLE WHO DEVELOPED THE FIRST
INNOVEX DISKETTE AND DRIVE IN 1970
INN0TR0NICS CORPORATION DEPT D
BROOKS ROAD
LINCOLN, MASSACHUSETTS 01773
Tel. (617) 259 0600
"Blue Box"
IDS MODEL 60 MODEM AND TERMINAL
INTERFACE POCKET ANALYZER
Our Model 60 is called "The
Blue Box" by thousands of
users. This compact unit
packs the most testing capabil-
ity per dollar. Pinpoints the
source of trouble between the
Modem and Terminal. Pro-
vides access to all 25 lines of
the EIA RS 232 interface. Has
12 monitoring LED's plus two
100 Nashua St., Prov., R.I. 02904. Tel. (401) 274-5100 TWX 710-381-0285
EXPORT EMEC. BOX 1285, HALLANDALE, FLORIDA 33009
voltage-sensing LED's. 24
miniature switches allow iso-
lated testing and observation
of all signals. Mini-jumpers
included for cross-patching
and signal monitoring. Sturdy
10 oz. unit has hard plastic
case, is battery powered, reg-
ular or rechargeable. Im-
mediate delivery.
IIB INTERNATIONAL
I DATA
b) SCIENCES, INC.
Circle 183 on inquiry card.
August 1978©BYTE Publications Inc 157
Circle 136 on inquiry card.
And now... a few
well chosen words from EMM
256 words on one chip, to be exact. With TTL compatible
inputs and outputs, a 400 ns maximum access time,
and needing only a single +5V power supply to func-
tion. It's a small memory system in one standard 22-pin
DIP, with multi-sourced pin-out. And it's available for
off-the-shelf delivery. Now.
Get the latest word on the EMM SEMI 3539 256x8-bit
static RAM from any EMM SEMI sales office or
distributor. Or call us today.
SEMI, INC.
A subsidiary of Electronic Memories & Magnetics
3883 N.28th Ave., Phoenix, AZ 85017 (602)263-0202
16K RAM
FULLY STATIC
kit $350
10 SLOT MAINFRAME
TT-10. . KITS325
10 SLOT TABLE TOP
MICROCOMPUTERS
TT-8080. KITS440
SYSTEM WITH 1 6K & I/O
TT-8080-S. . KIT SI 050
CARD CAGE &
MOTHER BOARD
ECT-100. . KITS100
CCMB-10 KITS75
WITH CONNECTORS
& GUIDES
ECT-I00-F. KITS200
CCMB-10-F. . KIT $125
CPU'S, MEMORY
MOTHER BOARDS
PROTOTYPING BOARDS
EXTENDER CARDS
POWER SUPPLIES
SHIPPING EXTRA
DEALER INQUIRIES INVITED
ELECTRONS CONTROL TECHNQLQGV
FACTORY ADDRESS:
763 RAMSEY AVENUE
HILLSIDE, N. J. 07205
MAILING ADDRESS:
P, O BOX 6
UNION, N. J. 07083
I
I
I
I
I
I
I
I
I
I
(201) 686-8080
get into the menu programs I use and then I
can select the options by number. You send
any other messages that are necessary."
Ted was not discussing the usual black
box. He was promoting the idea of intelli-
gent rather than dogmatic communication
with the computer. A person at this level
in the corporate structure could not be
expected to maintain the code word and
syntax library of the average programmer
downstairs. What he wanted was only log-
ical. I left the meeting with the feeling that
here was a man who also realized it was time
to fight rather than conform.
Perhaps if computers were programmed
less for interaction with computer peripher-
als and more with the human operator in
mind, people would be less afraid of them.
Ted's application was specific and repetitive
but he was still burdened with the general
system protocol. In a company that prob-
ably had a thousand programmers generating
software, his cry to change everything to
allow simple input and output (IO) for his
application would be fighting an uphill
battle. He knew this and also realized that it
was easier to change it at his end.
We would make Ted's black box for him
and it would solve his immediate problem,
but what of the future?
Do your computer input devices limit
you? Many personal computer systems have
this problem.
Consider a simple program to teach your
child mathematics. Such a program in its
least complicated form might involve a mul-
tiple choice and printout something like this:
4x8 = 28,30, 31, 32, or 35
The right answer is?
Most BASICs would require typing 32 and a
carriage return. Don't forget the carriage re-
turn! Remember, you have to conform to
the input protocol of the BASIC.
Now, before I explain what I'm driving
at, let me give another example. Say you
want to use your system for a home manage-
ment application, such as putting together
a shopping list. You could list out the fol-
lowing on the screen:
1.
Milk
6.
Peanut butter
2.
Butter
7.
Dog biscuits
3.
Margarine
8.
Cheese
4.
Eggs
9.
Coffee
5.
Rice
10.
Tomatoes
control P for next page
Obviously, the number and a carriage return
could be entered to choose the items that
would be ultimately listed out as a shopping
list. A few pages along in the listings,
though, the entry data will get more com-
plex strictly from the sheer volume of pos-
sible choices. Most homemakers would tire
1 58 August 1978 © BYTE Publications Inc
Circle 120 on inquiry card.
of the complexity of such a system even
though the concept of just choosing items
from a list sounds simple.
The solution is to watch the way our
young mathematics student might react
when we display the expression 4 X 8 on
the screen. The natural response is to point
to the answer!
The homemaker would appreciate using a
system that communicates in straightfor-
ward terms. Display a list of groceries and let
the user point to the desired items.
A New Data Input Device
How do you point to a particular selec-
tion on a video display generated menu? The
computer needs to know how to interpret
your response regardless of the input device.
The ASCII keyboard is strictly an input code
to the computer. There are unique codes for
each switch on the keyboard. The computer
doesn't know the location of the particular
key that prints an R or a Q. It recognizes
only a 7 bit code for these letters. If you
don't have a keyboard on your computer,
but want to check out some software that
needs very little typed entry, you could use
seven toggle switches. It would be very slow,
but the computer wouldn't care. All it's con-
cerned about is that you present the code it
wants.
The same goes for any device attached
to a computer. The most obvious way to
point to a video display screen and have the
computer understand it is to use a light pen.
Such units have been described before in
BYTE so I won't go into too much detail
here (see the references at the end of the
article). All a light pen interface does is pre-
sent to the computer, usually in the same
manner as a keyboard input, a code repre-
senting a position on the video display
screen. This code has to be translated by
the program from a position into an action.
More on this later.
But, why use a light pen? This again
makes the operator conform more than
necessary.
Fingers Came Before Light Pens!
Though not capable of the same posi-
tional resolution as the light pen, it is pos-
sible to design an interface that allows a non-
contact data input. Photo I is a picture of
the prototype designed to illustrate such a
technique. It is an infrared scanning system
that serves as a low resolution noncontact
digitizer. In this particular case it is mounted
on the front of a video display to approxi-
mate the function of a light pen, but it could
just as easily be laid over a typed sheet of
Photo la: Noncontact scanning digitizer in action with a BASIC program.
Photo lb: Rear view of the video monitor showing circuitry mounted on two
printed circuit boards on either side of the picture frame.
1
lligglr—
T-
H
(
11
tii n i i i i « ■ i t i • >
i i i i i i i i » i i i i > i i
i i i i • i i i i i i i • ■ < i
i i. i i i i t > i i ■ t < i i ■
■ i i • i i ■ ■ ■ ■ • ■ ■ i > >
III Ml llll 1 1 1 III
i i l ■■■■■■■■••■ i ■
1 || III 1 Ml 1 1
■ 1 1 < 1 I 1 > 1 • • 1 ■ 1 I ■
1 1 1 1 1 I ■ 1 1 I I l l III
, 1 1 1 1 1 1 I I • 1 ■ 1 > 1 I
1 1 l 1 l 1 1 l 1 1 i l i l l l
■ ■ ■ > i > ■ < ■ ■ ; ■ !
, | I I 1 I I 1 I ■ ■ i ■ • 1 1
ft
^d
-
f
Photo 2: Display showing locations of the 256 points of the array.
August 19786BYTE Publications Inc 159
8 BIT
ADDRESS
LATCH
')
120 Hz
OSCILLATOR
')
'
ICI
f
IC9.I0
ADDRESS
COUNTER
X AND Y
INTERRUPTION
LOGIC
COMMUNICATION
AND SCAN
RESET LOGIC
IC2.3
4,6
'' IC4,8,II
IC3,II,8
1
!
"
DRIVER
32
LEDS
ANALOG
SWITCH
32
PHOTO
SIGNAL
CONDITIONER
1+5 VOLTS WHEN
LIGHT PATH IS
OPTIONAL
AUDIO DATA
READY
♦ *M
SENSORS
INTERRUPTED)
IC 12,13,14,15
1C 16, 17,18, 19
IC7.8
ICI ,20
COMPUTER
INTERFACE
4 BIT
X ADDRESS
"\ 4 BIT
J Y ADI
DRESS
*■ DATA READY
READY
ACKNOWLEDGE
Figure 1 : Block diagram of the noncontact scanning digitizer. Two rows of 16 pairs of LEDs and phototransistors are placed
opposite each other in front of a video display. When the user breaks the infrared light beams with a finger or other object, a
signal is sent to the computer giving the coordinates of the point in question.
paper in which position coordinates could be
translated into usable relationships. I refer to
it as a touch panel or touch scanner for lack
of a better word.
Build Your Own Touch Panel
The touch panel is an elaborate infrared
scanner. There are 32 pairs of infrared light
emitting diode (LED) transmitters and re-
ceivers mounted around the perimeter of the
screen. There are 16 on the X (or horizontal)
axis and 16 on the Y ( or vertical) axis. The
resolution of such a device is therefore 16 by
16, and there are 256 individual points.
Photo 2 shows this grid system.
Figure 1 is the block diagram of the sys-
tem, and figure 2 shows the detailed sche-
matics of the system. The noncontact digi-
tizer is basically a hardware stepping circuit
that turns on each transmitter/receiver pair
sequentially and checks to see if anything
(like a finger or a pencil) is blocking the
beam. The transmitters and receivers are on
opposite sides of the board, as illustrated in
figure 3. The lower left corner is position
(0,0) in a Cartesian coordinate system. The
upper right is location (15,15).
The hardware first turns on the pair Dq
and Qq and then sequences down the line
along the horizontal (X) axis to D-j^ and
Q-| 5. Only one pair is energized at any one
time. If any of the beams within these 16
pairs is obstructed, the 4 bit binary code for
that location is loaded into IC9. The scan
continues in the Y direction in a similar
manner and the 4 bit Y position is loaded
into ICI 0. If the hardware senses that some-
thing is obstructing an X and Y beam within
one scan around the perimeter, it sets a data
ready flag and stops the scanner.
The data presented to the computer is an
8 bit word representing a 4 bit X coordinate
and a 4 bit Y coordinate. These lines are
simply tied to a parallel input port, in the
same manner as all the other devices I de-
sign. The data ready bit can be read either
as a single bit input on another port, or as
a control line on a more intelligent inter-
face. When the program senses that the
data ready is high, it reads the scanner data
and momentarily pulses the ready reset line
low to start the scan cycle again.
Use a Picture Frame
The heart of the system is the LEDs and
phototransistors shown in photo 3. The de-
vice on the left is a General Electric LED 56
and the photodarlington detector used with
160 August 1978 ©BYTE Publications Inc
HORIZONTAL DI6-D3I
VERTICAL DO-DI5
; 47fl
»
■&
DI8
DI9
4f
025 ■
D26 ■
D27'
D28-
D29'
D30-
HORIZONTAL 016-031
TYPICAL
QI7
018
QI9
Q20
021
022
TYPICAL
FOR 8
026 -
027 -
028 -
029 -
30-
.-0
ICI4
7445
I C 1 5
7445
ICI8
4051
B
C
INH
ICI9
4051
QVV
S'G <U-
ICI2
7445
I CI 3
7445
ICI6
4051
A
B
C
INH
B
C
INH
ICI7
4051
•47fl
Dl
D2
D3
04
D5
06
w
TYPICAL
FOR 8
&
VERTICAL 00-015
TYPICAL
• Q3
■ 04
TYPICAL
FOR 8 Q8
rh
Figure 2a: LED driver and optical receiver circuitry for the noncontact digitizer. Each transmitter/receiver pair (consisting of an
LED and phototransistor) is activated sequentially via lines A, B and C. DO and QO are turned on first, and the sequence con-
tinues down the horizontal axis to D15 and Q15. If any of the beams is broken, the 4 bit binary code for that location is loaded
into IC9 (see figure 2b). The scan continues in the Y direction and the 4 bit Y position is loaded into IC10. Any obstruction
causes the data ready flag to be set and the scanner to be halted.
Augusl 1978 © BYTE Publications Inc 161
D C B A
Obi
O B2
O B3
O B4
COMPUTE R
INTERFACE
SIGNALS
O B0
> X ADDRESS
O B5
O B6
O B7
) Y ADDRESS
O DATA READY
ACKNOWLEDGE
AND READY RESET
Figure 2b: Interface cir-
cuitry for the noncontact
digitizer. Data presented
to the computer is in the
form of an 8 bit word
representing a 4 bit X
coordinate and a 4 bit Y
coordinate. These lines are
tied to the parallel input
port of the computer.
Notes on figure 2
1. All capacitors are 25 V ceramics unless otherwise specified.
2. All resistors are KW5 percent unless otherwise specified.
3. /77 denotes signal ground.
4. ICs 16 thru 19 are CMOS devices and should be handled carefully.
5. Additional LEDs on prototype unit are for testing purposes only.
6. QO thru Q31 : GE LED56 infrared emitter.
DO thru D31 : GE L14F2 photodarlington infrared detector.
IC
Type
+5 V
Gnd
1
7400
14
7
2
7493
5
10
3
7474
14
7
4
7404
14
7
5
74155
16
8
6
74123
16
8
7
LM311
8
1
8
7408
14
7
9
7475
5
12
10
7475
5
12
11
7400
14
7
12
7445
16
8
13
7445
16
8
14
7445
16
8
15
7445
16
8
16
CD4051
16
8
17
CD4051
16
8
18
CD4051
16
8
19
CD4051
16
8
20
74121
14
7
Table I : Power wiring table for the noncontact digitizer.
162 August 1978 © BYTE Publications Inc
IO^F
A B C D
0000
IK
CTRL [Z>~
7400 7400
I ■ ,. 4 .
2_ ICI V^ 1| 5 ICI V
220n
-^M
OSC ~ 120Hz
A\ • — ^vw I
SIG O
C>S2
OS4
"C_>LD
-O NL
SENSITIVITY ffl
Figure 2c: Address decoder and phototransistor signal conditioning circuitry for the noncontact digitizer. IC2 is a counter driven
by the oscillator at upper left. When a phototransistor is activated, the SIG line goes high, activating line NL, which stores the
4 bit address of the interrupted beam (see figure 2b). The scanner is finally halted via the CTRL line. The computer then reads
the coordinates and reactivates the scanner.
CTRL O
: 33K
^
220
220
ICI V^-l ll|2 ICI p
m
*A FEW O.l^-F CAPACITORS
SHOULD BE PLACED AROUND
THE BOARD BETWEEN +5V
AND THE GND AS BYPASS
CAPACITORS
An industrial grade alpha-
numeric terminal, incor-
porating touch panel input,
is being manufactured. For
information contact:
General Digital Corp
700 Burnside Av
East Hartford CT 06108
(203)289-7391
Figure 2d: Optional audio data ready signal circuit, which causes an audible beep on a speaker
whenever a pair of beams is obstructed and sets the data ready signal.
August 1978 © BYTE Publications Inc 163
Photo 3: GE LED56 light emitting diode (left) and GE LJ4F2 photodarlington infrared detector used to transmit
and receive infrared light, respectively, for use in the noncontact scanning digitizer.
it is the L14FZ. These units have built-in
glass lenses and are very sensitive. A much
less expensive though equally capable opto-
electric pair is the H17B1 shown on the right
in photo 3. Because it has no lens, it requires
Photo 4a: Mounting the photodarlington detectors.
considerably more shielding from ambient
light, but it will work if properly aligned. I
have checked the operation of both devices
and recommend the lensed type if you
intend to use the touch scanner in high
ambient light environments. The prototype
described here used LED56s and L14Fs.
The frame that holds all the electronics is
a $4 discount store wooden picture frame.
Half inch (1.27 cm) wooden strips glued
around the edges hold the phototransistors
and LEDs in evenly spaced, recessed, Va inch
(0.63 cm) holes. This technique is shown in
photos 4a and 4b.
The entire assembly is attached to the
picture frame and can be secured to the
front of a video display. The display in these
photos is a 12 inch (30.76 cm) surplus Phase
4 monitor.
One further addition to the hardware to
aid users of the scanner is audio feedback to
confirm that a position coordinate has been
selected. The data ready strobe triggers a 0.1
second beep on a small speaker.
Calibration and Testing
There is virtually nothing to calibrate or
test on this unit. The only adjustment is the
164 Augusi 19780BYTE Publications Inc
0000000000000000
Notes for figure 3
1.
Scan is sequential from
DO thru D31.
2.
Only one LED is on at
any one time.
3.
Scan rate is approxi-
mately four samples per
second.
4.
Total detectable points
= 256.
LEGEND
LED POSITION
O PHOTOTRANSISTOR
POSITION
► LIGHT PATH
(X,Y) XY COORDINATE
EACH POSITION
IS GIVEN AS A
4 BIT BINARY CODE
sensitivity control on the phototransistor
amplifier. Direct sunlight or incandescent
lights will cause saturation of the input and
disable the scanner. The only other impor-
tant consideration is mechanical alignment:
the LED and phototransistor constituting
each pair must be exactly opposite and in
direct alignment.
The program in listing 1 is a simple
BASIC program to exercise the scanner and
provide the operator with an indication of
its operational integrity. It is written in
Micro Com 8 K Zapple BASIC. The decimal
coordinates of X and Y will be output as
your finger is moved across the scanned area.
This is the only routine that has to be added
to any BASIC program to exercise the scan-
ner. If set up as a subroutine by changing
line 210 to a RETURN statement, the rou-
tine will turn the scanner on when called and
return to the main program with a value in
variable D representing the coordinates to
which you pointed. The main program then
responds appropriately.
Obviously the scanner would be more
efficiently driven by a machine language pro-
gram, but I feel most users will be interested
in utilizing this device with a high level lan-
guage. The relatively slow scan rate allows
considerable leeway.
Next month I'll pursue the software (in
BASIC) necessary to drive this scanner effec-
tively. The major emphasis will be the use of
menus and keyboard substitutions."
REFERENCES
Loomis, Sumner S, "Let There Be Light Pens,"
January 1976 BYTE, page 26.
Webster and Young, "Add a $3 Light Pen to
Your Video Display," February 1978 BYTE,
page 52.
Figure 3: LED and phototransistor placement for the 16 by
16 Cartesian coordinate noncontact digitizer.
100 REM **RESET DATA READY BIT TO START SCANNER**
1 10 OUT 16,0 :OUT 16,255 :REIV1 THIS IS A 10 MSEC STROBE
120 REM **TEST DATA READY BIT**
130 T=INP(2) :REM READ INPUT P0RT2
140 T=T AND 1 :REM MASK ALL BUT LSB
150 IF T<>1 THEN GOTO 130
160 REM •« READ DATA **
170 D = INP(16) :REM SCANNER IS ATTACHED TO PORT 16
180 X=(D AND240)/16 :REM MASK AND SHIFT TO OBTAIN 4 B IT X
190 Y=D AND 15 :REM MASK TO OBTAIN 4 B IT Y
200 PRINT"X=";X,"Y=";Y
210 GOTO 110
Listing 1 : Program written in 8 K Zapple BASIC to exercise the scanner.
Photo 4b: Mounting the LEDs.
August 1978©BYTE Publications Inc 165
JACPOT
Edwin E Hastings
18 Churchill Rd
Marblehead MA 01945
Listing 1: The JACPOT game, written in BASIC. [We detect
of bias in the symbols for a winning combination, which can
defined arbitrarily to suit the user's fancy. . .CHj
JACFOT 10-MAY-77 HU BASIC/RT--1 1 V01-01
10 REM COPYRIGHT 1977 BY EDWIN E. HASTINGS
20 RANDOMIZE
30 PRINT ■ PLEASE ENTER THE AMOUNT OF MONEY"
40 PRINT • YOU WISH TO PLAY WITH " >
SO INPUT Z
60 IF Z<0 THEN 80
70 GO TO 90
SO PRINT ■ PLEASE ENTER A POSITIVE NUMBER.' \ GO TO 50
90 PRINT
100 PRINT " DC) YOU WANT INSTRUCTIONS ( Y-N )' !
110 LET A*»CHR*<SYS(4>)
120 IF A*="N" THEN 310 \ IF A*<>*Y* THEN 100
130 PRINT
140 PRINT ' BANDIT A SIMULATED SLOT MACHINE"
150 PRINT " PLAY UNTIL YOU OR THE BANK ARE BROKE"
160 PRINT ■ WINNING COMBINATIONS ARE AS FOLLOWS."
170 PRINT
180 PRINT " 8080 B080 ???? PAYS Ml"
190 PRINT " 8080 IBM ???? PAYS 2S1"
200 PRINT " 8080 8080 IBM PAYS 4*1"
210 PRINT ■ 8080 8080 8080 PAYS 4S1"
220 PRINT ■ 6800 6800 6800 PAYS Bil'
230 PRINT ■ 6502 6502 6502 PAYS 14*1"
240 PRINT " Z-BO Z-80 Z-BO PAYS 32 ! 1 ■
250 PRINT " CARD CARD CARD PAYS 4411*
260 PRINT " TAPE TAPE TAPE PAYS 128! 1"
270 PRINT " BISK DISK DISK PAYS 256! 1"
280 PRINT " IBM IBM IBM SUPRISE"
290 PRINT " DEC DEC DEC TAKES IT ALL"
300 PRINT
310 PRINT - WHEN A QUESTION MARK IS PRINTED* RESPOND WITH THE"
320 PRINT ■ NUMBER OF REPEATED PLAYS YOU WISH TO MAKE."
330 PRINT ■ A COMMA. AND THE SIZE OF YOUR BET. IF YOU WISH -
340 PRINT " TO STOP BEFORE YOU BREAK THE BANK. OR YOU GO BROKE."
350 PRINT " INPUT A '0.0' WHEN YOUR BETS ARE ASKED FOR."
360 PRINT \ PRINT
370 LET B1=INT(1.85*Z> \ LET P1=Z
380 LET C1=0 \ LET C2=0
390 IF C2<C1 THEN 510
400 IF B1<=0 THEN 1480
410 GO TO 480
420 PRINT ■ YOUR BETS PLEASE - ! \ INPUT C1.C4
430 PRINT
440 IF C1=0 THEN IF C4=0 THEN 1670
450 IF C4< = THEN 420
460 LET C2=0
470 GO TO 510
480 PRINT " THE BANDIT HAS t'Bl'.YOU HAVE $"pl
490 PRINT
500 GO TO 420
510 LET P1=P1-C4 \ LET B1=B1+C4
520 LET C2=C2+1
530 GOSUB 740
540 LET A1=X2
550 GOSUB 740
560 LET A2=X2
570 GOSUB 740
580 LET A3=X2
S90 IF Al<>9 THEN 600 \ LET A1=A2
600 IF A2<>9 THEN 610 \ LET A2=A1
610 IF A3<>9 THEN 620 \ LET A3=A2
620 IF (A1*A2X>81 THEN 640
630 LET A2=A3 \ LET A1=A2
640 IF A1=A2 THEN 660
650 GO TO HBO
660 IF A2=A3 THEN 720 \ IF Al=2 THEN 6B0
670 EC TO 1180
680 IF A3=l THEN HBO
690 LET B1=B1-<2*C4> \ LET P1=P1+(2*C4>
700 PRINT "WIN $"i2*C4
710 GO TO 390
720 IF Al = l THEN 1180
730 GO TO 1370
740 LET X2=0
750 LET X1=INT(10000*RND<1)>
760 IF Xl>7578 THEN 750
770 IF Xl>7514 THEN 870
780 IF Xl>7412 THEN 880
790 IF Xl>7248 THEN 890
800 IF Xl.J-6968 THEN 900
810 IF Xl>6366 THEN 910
320 IF Xl>5894 THEN 920
830 IF Xl>4818 THEN 930
840 IF Xl>3096 THEN 940
850 IF Xl>340 THEN 950
860 GO TO 960
870 LET X2=X2+1
880 LET X2=X2fl
890 LET X2=X2+1
900 LET X2=X2+1
a small amount
of course be re-
Many states are now working to legalize
gambling, but why wait for the bureaucratic
process when you can start a casino on your
own computer (for fun of course) with the
JACPOT program. JACPOT is a simulation
of a slot machine written in BASIC, with
bets limited only by the constraints of your
machine. You can lose all your money and
then lose it again!
910 LET X2=X2U
920 LET X2=X2+1
930 LET X2=X2+1
940 LET X2=X2I1
950 LET X2=X2+1
960 LET X2=X2+1
970 IF X2<10 THEN 990
980 PRINT -DEC "( \ RETURN
990 IF X2<9 THEN 1010
1000 PRINT "IBM *l \ RETURN
1010 IF X2<8 THEN 1030
1020 PRINT "DISK "S \ RETURN
1030 IF X2<7 THEN 1050
1040 PRINT "TAPE "» \ RETURN
1050 IF X2:.6 THEN 1070
1060 PRINT "CARD "> \ RETURN
1070 IF X2<S THEN 1090
10B0 PRINT "Z-BO " > \ RETURN
1090 IF X2<4 THEN 1110
1100 PRINT "6502 "! \ RETURN
1110 IF X2<3 THEN 1130
1120 PRINT "6800 "! \ RETURN
1130 IF X2<2 THEN 1150
1140 PRINT "8080 "I
1150 IF X2>1 THEN 1170
1160 PRINT "WANG " i
1170 RETURN
1180 LET A4==0
1190 IF ftl-10 THEN 1260 \ IF A2==10 THEN 1260 \ IF A3=10 THEN 1260
1200 IF A1>1 THEN 1210 \ LET A4=A4+1
1210 IF A2>1 THEN 1220 \ LET A4=A4+1
1220 IF A2>1 THEN 1230 \ LET A4=A4+1
1230 IF A4>0 THEN 1290
1240 PRINT
1250 GO TO 1580
1260 PRINT "WIN »"10*C4" WITH DEC"
1270 LET B1=B1-<10*C4> \ LET P1 = PH- ( 10*C4 )
1280 00 TO 1580
1290 IF A4>1 THEN 1320
1300 LET B1=B1+(2*C4) \ LET P1=P1~<2*C4)
1310 PRINT "ZILCH-YOU LOSE $"2*C4 \ GO TO 15B0
1320 IF A4>2 THEN 1350
1330 LET B1=B1+(4*C4> \ LET P1=P1-(4*C4>
1340 PRINT -DOUBLE ZILCH-YOU LOSE »"4*C4 \ GO TO 1580
1350 LET B1=B1-K8*C4> \ LET P1=P1-<8*C4>
1360 PRINT -TRIPLE ZILCH-YOU LOSE t"8*C4 \ GO TO 1580
1370 LET X4=2
1380 FOR X3 = 2 TO 10
1390 LET X4=X4*2
1400 IF A1-X3 THEN 1420
1410 NEXT X3
1420 IF Al=10 THEN 1460 \ IF Al=9 THEN 460
1430 LET B1-B1-<X4*C4> \ LET P1=P1+(X4*C4 )
1440 PRINT "WIN t"X4*C4
1450 GO TO 1580
1460 LET P1=P1*2
1470 LET B1=0
1480 PRINT
1490 PRINT TAB(IS) i "JACKPOT" iCHR*<7) fCHR* (7)
1500 PRINT " YOU BROKE THE BANK. YOU NOW HAUE $-Pl*>"
1510 PRINT " PLEASE LEAVE QUIETLY"
1.520 GO TO 1630
1530 LET Z2=INT(275*Z)
1540 LET P1=P1+Z2 \ LET B1=B1-Z2
1550 PRINT "IT'S MAGIC BONUS TIME, YOU WIN "Z2" DOLLARS."
1560 PRINT "COMPLIMENTS OF DEC ! " SCHR* (?)
1570 FOR K==l TO 4 \ PRINT \ NEXT K
1580 IF B1<=0 THEN 1490
1590 IF P1<=0 THEN 1620
1600 GO TO 390
1610 PRINT
1620 PRINT " YOU'RE ALL DONE, NO CREDIT ALLOWED."
1630 FOR K2=l TO 4 \ PRINT \ NEXT K2
1640 PRINT "DO YOU WANT TO PLAY AGAIN(Y-N)"!
1650 LET YU=CHRt(SYS<4) )
1660 IF Yt="Y" THEN 310 \ IF Y4<>"N" THEN 1650
1670 END
READY
166 August 1978©BYTE Publications Inc
Listing 2: A sample run of JACPOT.
JACPOT 10-MAY-77 MU BASIC/RT-11 UOl-Ol
PLEASE ENTER THE AMOUNT OF MONEY
YOU UISH TO PLAY WITH ? 1000
DO YOU WANT INSTRUCTIONS<Y-N>Y
BANDIT A SIMULATED SLOT MACHINE
PLAY UNTIL YOU OR THE BANK ARE BROKE
WINNING COMBINATIONS ARE AS FOLLOWS.
8080
8080
????
PAYS
2
1
8080
IBM
????
PAYS
2
1
8080
8080
IBM
PAYS
4
1
8080
8080
8080
PAYS
1
1
6800
6800
6800
PAYS
a
1
6502
6502
6502
PAYS
16
1
Z-80
Z-80
Z-80
PAYS
32
1
CARD
CARD
CARD
PAYS
64
1
TAPE
TAPE
TAPE
PAYS
128
1
DISK-
DISK
DISK
PAYS
256
1
IBM
IBM
IBM
SUPRISE
DEC
DEC
DEC
TAKES
IT AL
WHEN A QUESTION MARK IS PRINTED , RESPOND WITH THE
NUMBER OF REPEATED PLAYS YOU WISH TO MAKE.
A COMMArAND THE SIZE OF YOUR BET. IF YOU WISH
TO STOP BEFORE YOU BREAK THE BANK, OR YOU GO BROKE.
INPUT A '0.0' WHEN YOUR BETS ARE ASKED FOR.
THE BANDIT HAS * 1849 .YOU HAVE * 1000
YOUR BETS PLEASE? 10.10
TAPE
6502
WANG
8030
8080
Z-80
WIN
*
20
S080
6502
8080
6502
6800
6800
CARD
80B0
8080
CARD
8080
8080
8080
CARD
6502
8080
8080
6800
WIN
$
20
TAPE
8080
6800
6502
Z-BO
TAPE
THE BANDIT HA
3 * 1909
.YOU HAVE 1
YOUR BETS PLEASE?
10.20
6800
6800
6800
WIN
*
160
6502
6800
6800
6800
8080
TAPE
Z-80
8080
8080
Z-80
8080
6502
6502
8080
8080
6502
6502
6800
DEC
6502
CARD
WIN
$
200 WITH I
TAPE
8080
Z-80
8080
8080
8080
WIN
t.
HO
THE BANDIT HAS * 1669 . YQU HAUE $ 1180
YOUR BETS PLEASE? 10.100
DOUBLE ZILCH-YOU LOSE » 400
WIN '4 400
DOUBLE ZILCH-YOU LOSE * 400
YOU'RE ALL DONE. NO CREDIT ALLOWED.
DO YOU WANT TO PLAY AGAIN<Y-N)Y
WHEN A QUESTION MARK IS PRINTED, RESPOND WITH THE
NUMBER OF REPEATED PLAYS YOU WISH TO MAKE,
A COMMA. AND THE SIZE OF YOUR BET. IF YOU WISH
TO STOP BEFORE YOU BREAK THE BANK. OR YOU GO BROKE,
INPUT A '0,0- WHEN YOUR BETS ARE ASKED FOR.
Z-80
TAPE
8080
8080
6B00
Z-80
6502
6502
8080
8080
WANG
6800
8080
8080
8080
8080
6800
6502
CARD
6502
8080
6502
WANG
IBM
'HE BANDIT HA
3 $
1849
,YOU HAVE *
YOUR BETS PLEASE?
11
WANG
6800
6502
ZILCH-
YOU LOSE * 10
3080
8080
8080
WIN
1
20
8080
6502
8080
TAPE
8080
WANG
8080
8080
6800
WIN
*
10
DEC
8080
8080
WIN
*
50 WITH DEC
6800
8080
8080
8080
6800
DEC
WIN
*
SO WITH DEC
8080
8080
WANG
8080
6502
CARB
TAPE
8080
8080
HE BANDIT HA
j $
1784
,YOU HAVE »
YOUR BETS PLEASE?
10,10
WANG
6800
IBM
ZILCH-
YOU LOSE t 20
CARD
6800
8080
80B0
8080
IBM
WIN
♦
40
Z-80
8080
6800
CARD
8080
6800
8080
6B00
IBM
8080
8080
8080
WIN
$
40
8080
8080
6800
WIN
*
20
8080
8080
8080
WIN
*
40
6502
8080
8080
THE BANDIT HAS *
1764
,YOU HAOE $
YOUR BETS PLEASE? 0,0
The main object of JACPOT is to play
until you or the house go broke. The win-
ning combinations pay off in ratios of from
2:1 to 256:1 and more. In more than 1600
bets my payoff ratio has varied from 2:1 to
64:1.
In JACPOT there are different ways to
win and lose. The first way to win is to hit
a winning combination. The second is to hit
a DEC in a combination. DEC pays off 1 0: 1 .
Table 1: A list of the major variables used in
J A CPOT and their functions.
Variable
Function
B1
The house's money.
C1
The number of bets.
C4
The size of the bets.
P1
The player's money (during the game).
X1
Determines the combinations.
X2
Prints the combinations.
Z
The player's money (start of game).
The way to lose money is to hit a ZILCH,
which causes you lo lose up to 8:1.
The program (see listing 1) was written
on a Digital Equipment Corporation PDP-1 1 ,
but can be easily modified for most BASIC
interpreters. In lines 110 and 1650, the
statement LET. . .=CHR$(SYS(4)) gives an
automatic carriage return after the variable is
inputted; this line can be replaced with an
INPUT statement. Lines 870 to 960 look
repetitive but they serve to determine
the combinations. The backslashes in some
lines are used to separate two or more lines.
They are replaced by colons in some BASIC
packages. In lines 1490 and 1560 the CHR$
(7) is used to ring the bell. The RAN-
DOMIZE statement in line 20 is used to
activate the random number generator. In
some BASICs only the RND in line 750
is needed.
I hope that you have a good time running
this program. If you have any questions or
comments about this program, please write
to me."
August 1978©BYTE Publications Inc 167
Pascal versus BASIC:
An Exercise
Allan M Schwartz
114-2 NimitzDr
West Lafayette IN 47906
Introduction
Pascal is one of the newest high level
languages on the personal computing scene.
Pascal has been accepted at many universi-
ties for several years. It is being used more
and more in industry outside of education,
and has just recently been introduced in
microcomputers. Why is there so much
enthusiasm about Pascal?
Pascal is a general purpose language, the
product of the long evolution of computer
languages. It has a simple but elegant syntax
and has been implemented in both large
systems (CDC 6000, IBM 360 and 370,
Burroughs 6700, etc) and microcomputers
(LSI-1 1,8080, 8085 and Z-80).
Historical Background
Just as computer hardware has been
continuously evolving during the past 25
years, so too have computer software
requirements. Originally, computers were
employed to work on mathematical tasks
such as solving ballistics problems, or gen-
erating tables of logarithms. Later it became
economically feasible to use computers for
data processing or working with voluminous
amounts of data such as census data or bank
statements. Recently wc have seen com-
puters participate in various customized,
dedicated applications like the control of
About the Author
Allan Schwartz Is currently studying computer science at Purdue
Uniuersity and researching the applications of microcomputers to
programming methodology. Previously, Mr Schwartz worked for
Nielsen Engineering and Research Inc at NASA Ames Research Center
as a systems programmer. He owns an MC6800 based microcomputer
system and is developing a Pascal P-machine emulator for the 6800
microprocessor.
traffic lights, microwave ovens and auto-
mobile ignitions.
We have seen a variety of applications
and language requirements lead to an evolu-
tion of computer languages. "Programming"
originally entailed the translation of simple
algorithms into machine code and bit by bit
loading of the computer's memory via the
front panel. Later, assembly languages were
used, followed by equation or formula trans-
lators such as FORTRAN. When it was dis-
covered that computing involved mostly
computing decisions and repetition, the lan-
guage ALGOL (/4/_GOrithmic Language) was
designed to express algorithms more clearly
and conveniently. The need for a language to
structure and represent all of the data and
files in business data processing applications
was filled by COBOL. Today we have
Pascal, which has flexible data representa-
tions, sufficient flow of control statements
to represent algorithms, and a clear, simple
syntax making it a favorite for a variety
of applications. Pascal is the result of several
evolutionary steps in the history of com-
puter languages.
Why is Pascal so appealing? First, it is an
expressive language. It has several control
structures that make the coding of algo-
rithms very natural. Second, Pascal has
flexible data representation.
Expression of Algorithms in Pascal
Figure 1 presents an algorithm to com-
pute the greatest common divisor (GCD)
of X and Y. The greatest common divisor
of the integers X and Y is the largest integer
that will divide evenly into both X and Y.
Note that three assertions are stated in the
flowchart. The first, a necessary pre-
condition, states that X and Y must be
positive integers. The second is a loop
invariant such that, when control passes
through that path in the flowchart, the
GCD(X, Y) is equal to the GCD(A, B). The
168
August 1978 © BYTE Publications Inc
third, a post condition, states that A is equal
to B, which is equal to the result, the
GCD(X, Y).
If we can prove these three points are
true, then the algorithm is correct — that is,
it will compute the greatest common divisor
of X and Y. The loop invariance is easily
proved, because if B is greater than A, the
GCD(A,B) equals GCD(A, B-A) (a more
rigorous proof is posed as an exercise in
Wirth's book (sec bibliography)). The post
condition is also easy to prove, because the
path to this exit is taken only when A
equals B, and then the GCD(A, A) certainly
equals A.
We arc now reassured that if the precon-
dition is true, the algorithm will compute
the desired result. Now, how do we code
this algorithm into our favorite programming
language? Before we answer that question,
let's look at the elements of the flowchart.
The flowchart in figure 1, and indeed any
computable algorithm, is made up of three
elements: sequence, selection and repetition.
Sequences are represented in the flowchart
by rectangular boxes such as:
Note that this flowchart element has one
entry (the arrow going in) and one exit. [In
BYTE's use of flowcharts, a lop to bottom
flow of control is assumed with arrows used
for exceptions; in this article we make a
stylistic exception, using extra arrows to
emphasize flow. . .CH]
The second flowchart element is selec-
tion. Selection is represented by:
TRUE /
(DECISION
;\ FALSE
•
)/
'
(any flowchart
element)
(ANY FLOWCHART
ELEMENT)
T
A selection flowchart element requires at
least two or three boxes; however, it always
has one entry and one exit.
f gcd J
Figure I : An algorithm to calculate the greatest common divisor (GCD) of
two integers. (The greatest common divisor of two integers is the largest
integer that will divide evenly into the two integers.)
The third flowchart element is repetition.
It is represented by:
FALSE
(ANY FLOWCHART
ELEMENT)
This form of repetition is called a "while
loop," because while the decision is true,
the element is repeated. Again, this element
has one entry and one exit.
These flowchart elements have been
translated directly into Pascal statements
August 1978 © BYTE Publications Inc
169
(see listing 1). Note that the sequence
element:
(
ROLL
)
SC-
OIEI»
DIE 2
is translated into the two Pascal assignments.
a := x ; b := y
Now some of the syntax details of Pascal
become evident. The assignment operator
is :=, which is different from the FOR-
TRAN or BASIC " = " in that the := oper-
CALL
CRAPS
POINT*-S
ODDS*- 2/1
POINT»-S
ODDS*- 3/2
POINT-*-S
00DS»-6/5
CALL
WIN
ERROR
ROUTINE
"T
Figure 2: Flowchart for a portion of the dice game "craps. " The five IF tests
can be implemented in Pascal with one case statement.
Metavariables
Bracketed symbols such as ("< statement >") all call metalin-
guistic variables (or metavariables) or syntactic units. They represent a
class of possible language elements. They are nonterminal symbols; that
is, the symbol "< statement >" itself will not appear in a Pascal pro-
gram. It represents a set of legal symbols that can appear in its place
in the program. Nonterminal symbols are bracketed by "< "and "> "
and are printed in italics to distinguish them from terminal symbols
such as for := if do. Terminal symbols are usually printed in heavy
type if the symbol is a language key word, and appear exactly as they
would in the Pascal program.
ator in Pascal is used for assignment only,
while the = in BASIC and FORTRAN is
used as both the assignment operator and
the equals sign. Statements are separated
by semicolons, and any number of state-
ments may be typed on one line. If the
above sequence were a subelement of a
selection element, it would be bracketed
by begin and end keywords. For example:
if (x>0) and (y>0) then
begin a := x ; b : = y
end
Any number of elements combined into one
sequence element by begin and end brackets
forms a compound statement.
The selection flowchart element is trans-
lated into the Pascal if statement:
if a>b then a := a—b
else b := b—a
And the repetition flowchart element is
translated into the Pascal while statement:
while a O b do <statement>
The expression <statement> is called a
metavariable. For an explanation, see the
accompanying text box. Notice, though,
that the metavariable < statement > in the
greatest common divisor while clause is an if
statement.
The real power in Pascal's algorithm descrip-
tive capability lies in this sort of nesting.
For example, any element can occur as a
subelement of the while or if statement.
These are called structured statements,
and they can be nested to any depth.
Look again at the greatest common
divisor (GCD) function in listing 1. Note
that the routine consists of a heading and
a variable declaration statement followed
by one compound statement, bracketed
by begin and end. Functions and proce-
170
August 1978 ©BYTE Publications Inc
dures in Pascal can be thought of as named
statements with local variables. They always
have one entry and one exit, and therefore,
a call is flowcharted as a sequence element
such as:
is represented by:
Z*-GCD(X,Y)
OR
Pascal has a second selection statement
called the case statement. This statement
is a concise representation of the special
case of nested if statements. An example
of this is the "craps first roll" algorithm
used to implement the dice game called
craps. A pair of dice can obviously have
only one summed value from 2 to 1 2 on any
given throw, making this an ideal use for the
case statement (see figure 2). The five nested
decisions can be represented with the follow-
ing Pascal case statement:
s : = die 1 + die 2;
case s of
2, 3, 12 :
craps;
4, 10 :
begin point : = s; odds : = 2/1
end;
5,9:
begin point : = s; odds : = 3/2
end;
6,8:
begin point : = s; odds : = 6/5
end;
7, 11: win
end |of case statement^
Of course, this could be represented using if
statements; however, the case statement is
much more concise and clear. When the
decisions in a group of nested if statements
are mutually exclusive, that is, if any one
being true implies that the rest are false,
then a case statement is probably the ap-
propriate representation.
Pascal allows two other forms of repeti-
tion: the repeat statement and the for
statement. The repeat statement:
repeat
<any statement^
until <condition>
(ANY FLOWCHART
ELEMENT)
Repetitions can always be expressed as
either repeat statements or while statements.
However, one form usually sounds better.
For example:
repeat shoot craps
until broke or out of time
is equivalent to
shoot craps;
while not broke
and not out of time
do 5/700/ craps
The for statement:
for <var>: =
<init val> to < final val>
<any statement^
is represented by:
August 1978 ©BYTE Publications Inc 171
Notice that again there is one entry and one
exit for this Flowchart element.
Another element we might see in a flow-
chart is an arrow coming out of a subelc-
ment, perhaps to a different page of the
function gcdix,y: integer): integer;
var a,b: integer; <x,y >0 I
begin
a := x; b ;= y; .
whileaObdo \ GCD(X.Y) = GCD(A.B) [
if a>b then a := a—b
else b := b—a;
end
gcd :=
JGCD(X.Y) = A = b|
flowchart. This exit from the normal flow
of execution is the only use of the Pascal
goto statement. Indeed, very few Pascal
procedures need goto statements to ex-
press the algorithm. Goto statements can
fog the otherwise clear logic of a routine.
A final element that might be found in
flowcharts is an assertion and commentary
such as:
I 1
H GCD(X.Y) EiEB I
I I
Listing 1 : Pascal function to calculate the greatest common divisor of two
integers.
100
LET A = X
110
LET B=Y
120
IF A=B THEN 190
130
REM . . . GCD(X.Y) = GCD(A,B
140
IF A>B THEN 170
150
LET B=B-A
160
GOTO 180
170
LET A=A-B
180
GOTO 120
190
REM . . . GCD(X.Y) = A = B
200
RETURN
Listing 2: BASIC subroutine to compute the greatest common divisor of
two integers.
INTEGER FUNCTION GCD(X,Y)
INTEGER A,B,X,Y
A=X
B = Y
IF (A.EQ.B) GOTO 190
. . . GCD(X.Y) = GCD(A.B)
IF (A.GT.B) GO TO 170
B = B-A
GOTO 180
A = A-B
CONTINUE
GO TO 120
120
170
180
190
. . . GCD(X.Y)
RETURN
END
A = B
Listing 3: FORTRAN function to compute the greatest common divisor of
two integers.
Pascal's Namesake
Blaise Pascal (1623-1662), one of the foremost famous French
mathematicians, developed the Pascal theorem of projective geom-
etry at the age of 16. One year later he started developing a calculat-
ing machine. He completed the first operating model in 1642 and
built 50 more during the next ten years. In 1654 he produced two
papers establishing the foundations of integral calculus and of prob-
ability theory .
The Pascal greatest common divisor (GCD)
function has all of these elements in an
appropriate place in the source code. Pascal
allows comments, delimited with braces,
J and I , to be freely inserted any-
where a blank can be inserted.
We can conclude that for each Pascal
language statement there is a corresponding
flowchart element, and vice versa. Therefore,
one could easily flowchart any algorithm
just from its Pascal listing. Compare the
Pascal program in listing 1 to the FORTRAN
and BASIC programs in listings 2 and 3.
They are fundamentally identical, but all
of the statement numbers and GOTOs in
the FORTRAN and BASIC versions obscure
the logic. You might maintain that, for so
simple an example, there is no advantage for
Pascal. One could flowchart the greatest
common divisor (GCD) algorithm just from
the BASIC listing. Of course you could, but
how about flowcharting that 1200 line
FORTRAN headache you wrote a year ago
that has returned to haunt you?
Data Representation in Pascal
Pascal has several flexible forms of data
representation. A variable can be defined as
a scalar (single value) or a structured type.
The different scalar types are: real, integer,
character, Boolean, and user defined or
enumerated. The structured types include
arrays, records, sets and files.
Users can define their own scalar types by
enumeration. For example, in a traffic
control program, there might be a variable
called signalcolor which has a value of
yellow, green or red. Or, in a microwave
oven program, there might be a variable
called temp which represents the cooking
level specified. These concepts are repre-
sented by the following Pascal declarations:
172
August 1978 © BYTE Publication! Inc
type color = (red,yellow,green);
cooking level = (warm,defrost, simmer,
roast,reheat,
maxpower);
var signalcolor: color;
temp: cooking/eve/;
In this example the type declaration describes
the user defined types and the var declara-
tion specifies variable names and their
associated type.
Another innovation in Pascal is the ability
to specify a subrange of a scalar type. For
example, if the variable count is to be an
integer between 1 and 10, the declaration
would be:
var count: I. .10;
To further demonstrate these features, a
BASIC program that would benefit from
Pascal data representation is next explored.
Mastermind Codebreaker Example
The Mastermind codebreaker algorithm I
have chosen for this exercise was presented
by WL Milligan in the October 1977 BYTE,
pages 168 thru 171. His BASIC version is
reproduced in listing 4. A Pascal translation
is presented here in listing 5. Let us compare
the two.
The first 15 lines of the Pascal version
correspond to lines 10 to 45 in the BASIC
version. These are the type declarations and
the global variable declarations. These global
variables can be referenced from within any
procedure. The type declarations define new
variable types such as:
type colors
row
eval
(colorless, red, blue,
brown, green, yellow,
orange, space);
array [I. .4] of colors;
record
black, white: 0. A
end;
This means that a variable of type colors has
a value equal to one of these enumerated
items. A variable of type row is an array of
four colors. The type eval represents a code-
maker's response to a guessed row. What
does this represent in the game? This re-
sponse is the number of exact color and
position matches (black key pegs) and the
number of out of position color matches
(white key pegs). The codemaker responds
with between and 4 black and white key
pegs. The type eval in the Pascal version
accurately models this: a record consisting
■BLUE 1 . 'GREEN' , "YELLOU"
10 REM MASTER MIND ■CODEBREAKER
20 REM CODED IN RT-11 BASIC
30 RANDOMIZE
40 DIM R»(9f3) fS<9f1>
IS DIM A»(«) iB«<3>fC*<3) fD»(3)
SO REM INITIALIZATION
60 FOR J=0 TO 6
70 READ A»(J>
80 NEXT J
90 DATA 'RED
100 LET L0=0
110 LET L1=0
120 LET L2=0
130 LET L3=0
140 PRINT -MASTER MIND CODEBREAKER"
145 PRINT 'PLEASE BE PATIENT. SOMETIMES I
1.50 PRINT -WHICH VERSION (1 OR 2) "!
160 INPUT V
170 LET U»U+5
ISO REM ASSIGN COLORS AT RANDOM FOR ROU 1
190 FOR J = TO 3
200 LET R$<OfJ>=A«<INT<V*RND<J>>>
210 NEXT J
220 REM START MAIN PLAY OF GAME HERE
230 REM I IS THE ROU COUNTER
240 FOR 1=0 TD 9
245 PRINT
250 PRINT -MY MOVE FOR ROWI + 1' IS -
260 PRINT R«<IfO>fR»<If1>fR*<If2) fR*<If3)
270 PRINT "HOW MANY BLACK PEGS "I
2B0 INPUT S(IfO)
290 IF S(I>0)<>4 THEN 320
300 PRINT -THANKS FOR THE GAME"
305 PRINT
310 GO TO B70
320 IF S(IrO)<>3 THEN 360
330 LET S(If1)=0\REM IF 3 BLACKS THEN WH
340 GO TO 3B0
360 PRINT -HOU MANY WHITE PEGS ■ !
370 INPUT S(IfI)
380 REM GENERATE HYPOTHESIS
390 FOR I0=L0 TO 0-1
400 FOR I1=L1 TD V- 1
410 FOR I2 = L2 TD V-l
420 FOR I3=L3 TO U-l
430 LET Dt(0)=At(I0)
440 LET D«(l)=At(Il )
450 LET D*(2>=At(I2)
460 LET D«(3)=A«(I3)
470 REM CHECK ALL ROUS FROM FIRST TO CURRE
490 FOR R-0 TO I
500 FOR .1=0 TO 3
510 LET C*(J)=R«(R
520 LET B*(J>=D*(J
S30 NEXT J
540 REM USE ROW EVALUATION SUBROUTINE TD CI
550 REH HYPOTHESIS AGAINST EACH ROU
S55 LET N=0\LET M=0
560 GOSUD 910
570 REM CHECK FOR AGREFMENT OF BLACK 8 WHITE COUNT
580 IF NOSfRvO) THEN 700
590 IF M .S(RfI) THEN 700
600 NEXT R
610 REM MAKE SURE THAT HYPOTHESIS ROW DOES
420 LET Z=0
630 FOR .1 = TO
640 IF R*<0f.J)
650 LET Z = 7 + l
660 NFXT J
670 IF Z = 4 THEN
690 GO TO 820
700 NEXT 13
710 NEXT T2
720 NEXT 1 1
730 NEXT 10
740 PRINT
750 FRINT -COI
760 GO TO H70
770 LET I 0=10
780 LET I 1=11
790 LET 1.2=12
800 LET I 3=13+1
810 REM DO NOT RECHECK ELIMINATED POSSIBILITIES
B20 REM ASSIGN NFXT ROU
H30 FOR .1 = TO 3
S40 LET R»( 1 + 1 .J)=D»<J)
845 NEXT J
850 NEXT I
860 PRINT -I AM STUMPED — YOU WIN 1
F170 PRINT "ANOTHER GAME ")
B80 INPUT R*
890 TF Rt=-Y- THEN 150
900 STOP
910 REM SUBROUTINE TO EVALUATE RESPONSE
920 REM COUNT BLACKS FTRST
930 FOR .11=0 TD 3
940 IF C$(Jl)OB«(Jl ) THEN 960
950 LET N=N+I
960 NEXT J I
970 REM NOW COUNT WHITES
9B0 FOR J1=0 TD 3
990 FOR J2=0 TO 3
1000 IF J1=J2 THEN 1080
1010 IF C*< Jl >=B*( II > THEN 1080
1020 IF C»(J2)=Bt(.J2) THEN 1080
WHITE" f -SPACE"
TAKE A FEW MINUTES ON MY MOVE"
NT FOR CONSISTENCY
HECK CONSISTENCY OF
NT DUPl TCATF ROU 1
D'KJ) THEN 460
700
HAVF REACHED AN IMPASSE IN MY
I II YOU HAVE MADE AN ERROR'' "
1.030 IF C*<J1)<
1.040 LET M = M+1
1050 LET B*<J2)
1070 GO TO 1090
10B0 NEXT J2
1090 NEXT .11
1 100 RETURN
1110 STOP
2000 END
■8*CJ2) THEN 1080
■X'\REM DUMMY WRONG VALUE
Listing 4: Codebreaker
portion of W Lloyd Milli-
gan Is Mastermind game
written in BASIC. The
program appeared origin-
ally in the October 1977
BYTE, pages 169 and 170
(see page 1 76 of this issue
for a description of
Mastermind). Compare
this with the Pascal version
in listing 5.
August 1978©BYTE Publications Inc 173
Listing 5: Pascal version of the Mastermind BASIC program in listing 4.
program mmJ(inpHt,imtftHt);
label X~0;
type colors = (colorless, red. hluf, hroicn. ijreen. ijelloic, oranife. space);
roic = array | /...( I of colors;
enil = record
Mark, ichite: o. ..',
end;
ccalltnti
roics;
Hit m?:
color:
mimic:
lost:
rcrsioii:
i: I . . :>;
ins: array | / . . I<>\ of ccol:
array | / . . l<i] of roic;
array [colors] of packed array | / . .11] of clmr
array \o. . T] of colors:
roir: { First hypothesis checked }
roic; { Last hypothesis formed }
./■• I.
nia.rcolar: oroni/c
cli: char:
. space;
procedure initialization;
var c: colors; i: l . ..',
begin
na)nc\ red] :■
na»ic\lilnc] y-
niu)ic]lirnicii] :-
'RED
■blue
'BROWN
nonic\iirrcn] :-
Ha iuc]jtclloic] :
iiaini\orini(ic] :
naiiic\spacc\ :
'GREEN ':
= 'YELLOW
= 'ORANGE'
'SPACE '
for c ;= colorless to npiirc do
coloi\ord(cl] := c;
for i := I to J, do
rcdroit\i] := rcil;
lost .= rcilroic;
icritchii' MASTERMIND CODEBREAKER');
icritchiC PLEASE BE PATIENT. SOMETIMES I TAKE A FEW):
imtchiC MINUTES ON MY MOVE. WHICH VERSION (1 or 2)?'):
mill (ri'rsioii):
ina.i'color := color\ccrsion+, r t]:
{ Assign colors at random for row 1 }
for / .- / to 4 do
roics] l.i] := color] trttiic((rcrsio)i+. r >)*ramli>ni(o.tl)+ 1 .a) ]
end { Of Initialization Routine ) :
procedure clicckconsistancij thiii>othcsis,j)rcciinisroic: roic;
var c: ccal):
label louii;
vtarjlJJ: t . .4;
begin
{ Count blacks first }
c.hlack := 0:
for jl := / to i do
if hiipollwsis]jl] = prceioitsronijl] then
e. black :- c.hlack + 1;
{ Now count whites }
c.irhilc := (>;
for jl .= / to 4 do
begin
for ./J . - / to 4 do
if (jlfM and
(liiJl>othcsis[jl] * f>reri<»isroic]jl]) and
th\jpothcsis[j2] t ))r<'rioiisroie]j2\) and
(hijpothcsis\jl\ - prcriausrou\jJ]) then
begin
e. ichite := e. ichite + 1;
{ Dummy wrong value }
precioiisroic]jJ] := colorless;
goto 1090 { Exit J2 loop }
end;
1090:
end
end { Of Check Consistancy Procedure }
of two components, black and white, each
an integer between and 4.
The variable version represents the ver-
sion number, either 1 or 2. The 10 possible
rows of code pegs in the game are recorded
in the Pascal structure declared as:
var rows: array [I. . 10] of row;
Note that the careful selection of data
representation makes the program much
more clear and concise. The ability to deal
with structures as a whole instead of just
their elements tends to tighten up the logic
of the program. For example, the BASIC
lines:
820 REM ASSIGN NEXT ROW
830 FOR J=0TO3
840 LETR$(I+1J)=D$(J)
845 NEXT J
are functionally equivalent to the Pascal
assignment:
rowsfi+i J ;= hyp lassign next row}
Also, the BASIC lines:
610 REM MAKE SURE THAT
HYPOTHESIS ROW DOESN'T
DUPLICATE ROW 1
620 LET Z=0
630 FOR J=0TO3
640 IF R$(0,J)OD$(J) THEN 660
650 LETZ=Z+1
660 NEXT J
670 IFZ=4THEN 700
690 GO TO 820
are functionally equivalent to the Pascal
statement:
if hyp Orowsf! J then goto 820
Mr Milligan's BASIC version is well
written and well structured. It contains three
key routines: initialization (lines 50 to 210);
generate hypothesis (lines 380 to 845); and
evaluate response (lines 910 to 1100). How-
ever, due to the inexpressiveness of BASIC,
it takes careful study, even of this well-
written BASIC program, to recognize its
structure. On the other hand, looking at the
Pascal version of the same algorithm, the
expressiveness of the language shows the
structure at a glance. Similarly, the use of
meaningful variable names and Pascal record
structures makes the data representation
readable. Table 1 describes which variables
in the Pascal version are used in the same
174
August 1978 © BYTE Publications Inc
context as variables in the BASIC version.
As careful as you are when coding BASIC,
bugs are bound to creep in. For example, in
the BASIC version (listing 4), lines 610
thru 690 are unnecessary. Additionally,
there is no path through lines 770 to 810.
Coding errors rarely creep into Pascal
programs because the compiler enforces
variable declarations and type agreement.
For example, evaluations[5j := rowsfSj is
illegal because they are not type-compatible.
Also c := brown-red is illegal because arith-
metic is undefined for our user defined
colors type. And, version := 3 is illegal
because the value 3 is outside the legal range
for version.
Other Pascal Attributes
We have looked at some of the note-
worthy features in Pascal. There are also the
powerful features of block structured scope
of names, recursion and dynamic allocation
of storage. Pascal is known as a very "safe"
language because it optionally has extensive
compile and run time type checking including
type compatability, subrange bounds and
BIBLIOGRAPHY
Introductory books on Pascal:
Bowles, K L, Microcomputer Problem Solving
With Pascal, Springer-Verlag, New York, 1977.
Grogono, P, Programming in Pascal, Addison-
Wesley, Reading MA, 1978.
Schneider, G et al, An Introduction to Pro-
gramming and Problem Solving With Pascal,
Wiley, New York, 1973.
Wirth, N, Systematic Programming —An Intro-
duction, Prentice-Hall, Englewood Cliffs NJ,
1973.
Other books:
Dahl, J, Dijkstra, E W and Hoare, CAR,
Structured Programming, Academic Press, New
York, 1972.
Jensen, K and Wirth, N, Pascal User Manual
and Report (second edition), Springer-Verlag,
New York, 1976.
Wirth, N, Algorithms + Data Structures = Pro-
grams, Prentice-Hall, Englewood Cliffs NJ,
1976.
The Pascal Newsletter is published quarterly by
the Pascal Users Group for $4 per year. Contact
Andy Mickel, University of Minnesota Computer
Center, 227 Exp Engr, University of Minnesota,
Minneapolis MN 55455.
function JhriitltHiiollirsix: Boolean:
label SMK
var i I .iJ.i-l.i.'i: colurn;
r: II. ..'/;
hyp: rmr:
mill: mil:
r'mhlr: BlIolcUH:
begin ( forming Hypothesis }
riiihl, ■= true:
for il := htst\ 1 1 to musrolor do
for U := lustlJ] to muscular do
for hi := Iust\.i\ t<i muscular do
for i.'i := lust\.',\ tii muscular do
begin
lust :- retlrutr;
li!/l>\l\ := il: li!ii>\J\ := iJ: Iijo>\-I\ := '•>'.' hliAi] := H:
{ Check all rows so far for eonsistancy }
r := II;
repeat
/■:= ;■ + I:
elirrkeintsistti lie i/(ti mi.ru irs\ r\.eenl I );
until {irul i x i'riiliiiiliniis\r\) or (r = i);
if mill = cntlnutianx\r\ then
{ Make sure that hypothesis doesn't duplicate row 1:
if it hasn't then we have a viable hypothesis }
if //;/// * ruwx\ 1 1 then goto HJO;
{ Otherwise, keep searching.. ..NEXT i4, i8. i2.il }
end;
riuhlc = fiilxe; { No viable hypothesis left }
KM): if riuhlr then
begin { Do not recheck eliminated possibilities (
Inst := hyp;
ni«'.s[f + /| .= hyp | Assign next row )
end
else begin
icritehiV I HAVE REACHED AN IMPASSE. '):
irrileln (' COULD YOU HAVE MADE AN ERROR 9 ')
end;
fiirmliypothciin := riuhlr | Return with function value |
end ) Of Form Hypothesis Procedure ) :
begin ( Mastermind Codebreaker }
repeat
initialize:
( Start main play of game here )
for / .'= / to H do
begin
irriteln; icritc ("MY MOVE FOR ROW'.i: 2.' is'):
for j := / to 4 do
irrite ()ia»iiiruies\i.j\]: X); irriteln;
uriteln CHOW MANY BLACK PEGS?');
nail (eriiliiatiii>is\ i].liliiek);
if ei'alitatio>is[i\,l)luck = i then
begin
irriteln ('THANKS FOR THE GAME'); goto H70
end;
if eealiiatii»is[i\.t>lnek = A then
erillttatioHs[i\.tchltl' ,= II
else begin
irriteln (' HOW MANY WHITE PEGS?');
read (evaluationii.i].u'hite)
end;
if not form h yputhen is then goto X7l)
end;
irritcln (' I AM STUMPED YOU WIN!');
S7i): repeat
irritcln (' ANOTHER GAME?'); read (cli)
until (eh = 'Y')or(ch - 'N'J
until eh - 'N'
end I Of Main Program )
August 1978 © BYTE Publications Inc
175
array index bounds. Pascal has many other
dam representations not illustrated here,
such as sequential files, arrays, pointers and
sets. I can't begin to explain all of these
features here, but you don't have to under-
stand all of them before you write your first
Pascal program.
The main selling feature of Pascal is that
properly developed programs are extremely
easy to debug. Once you get a clean compile,
the program usually runs! Why? Because the
algorithms are expressed clearly and natural-
ly. The range of all control variables are well
specified and can be enforced at run time.
The data types all agree and are appropriate
to the problem. The program is readable -
data types mean what they say — and it is
therefore maintainable. Pascal encourages
the methodical and systematic development
of algorithms, an important structured
programming method.
I hope this survey of Pascal has whet your
appetite for the language. If so, read more
about Pascal in this issue, then pick up any
of the books in the bibliography and dive in!
Pascal is a rich and fertile language that
emphasizes the expression of algorithms and
data representation naturally and clearly.
When will your microcomputer speak
Pascal?"
BASIC Version
Pascal Version
Lines 220 to 270
and 850 to 900
1
DIM R$(9,3)
R S
DIM S(9,1)
program mm2
i: 1 . .9; j: 1 . . 4
rows: array 11 . . 10] of row
ch: char
evaluations: array [1 . . 10] of eval
Lines 50 to 210
J
DIM A$(6)
V
procedure initialization
i: 1 . . 4; c: colors
name: array [colors] of string
color: array [0 . . 7] of colors
version: 1 . . 2
Lines 380 to 845
10,11,12,13
L0,L1,L2,L3
V
DIM A$(6)
DIM DS(3)
R
J
N,M
procedure formhypothesis
H,i2,i3,i4: colors
red row, last: row
maxcolor: orange. . space
hyp: row
r: . .9
evall: eval
Lines 910 to 1100
J1.J2
DIM CS(3)
DIM BS(3)
N,M
procedure Checkconsistency
]1,j2: 1..4
hypothesis: row
previousrow: row
e: eval
Table 7 : A comparison of the variables used in the two versions of the Master-
mind game (see listings 4 and 5).
What Is Mastermind?
One of the most interesting con-
ventional (ie: noncomputer) games on
the market is "Mastermind," distri-
buted by Invicta Plastics, Suite 940,
200 5th Av, New York NY 1 001 0, and
available in many local stores. Master-
mind involves deductive logic, hypo-
thesis testing and probabilistic infer-
ence. In Mastermind, the players take
turns as "codemaker" and "code-
breaker.". The codemaker sets up a
concealed row of four colored pegs
from a set of Red, BLue, BRown,
Green, Yellow and Orange pegs. It is
acceptable to use the same color or
colors more than once. In version 2, a
more advanced game, empty Spaces
are also permitted.
To challenge the computer program
you are the codemaker. Write down a
code. A row of four colors invokes the
codebreaker computer program. It will
take up to ten tries (rows) to discover
the secret arrangement of colors in the
concealed row. After printing each
guess, the program will prompt you
for the number of black and white key
pegs.
The number of black pegs corres-
ponds to the number of correct colors
in correct positions. An important rule
is that no position in the try is
counted more than once.
When evaluating the program's try
it is necessary to count black and
white pegs carefully. If you make a
mistake counting the number of exact
or inexact correspondences, the pro-
gram may exhaust all possible arrange-
ments without finding a possible valid
try. In this event the message:
I HAVE REACHED AN IMPASSE.
COULD YOU HAVE MADE AN ERROR?
is printed.
(Adapted from W Lloyd Milligan's article, "Mastermind," October 1977 BYTE, page 168.)
1 76 *u«ust 1978 S BYTE Publications Inc
New Power Supply Dedicated to Minifloppy Format
LS-100 Series Designed for Electronic
Troubleshooting
A new multiple output power supply,
the CP-249, is, according to the manu-
facturer, the first power supply to be
dedicated to the 5.25 inch floppy disk
format.
The CP-249 provides dual outputs of
5 V at 0.7 A and 12 V at 1.1 A steady
state, with 1.7 A peak. The 5 V output
includes overvoltage protection. Stan-
dard features include 115/230 VAC
±10% AC input capabilities ±0.05%
line and load regulation, and full pro-
tection against short circuit and over-
load. Maximum ripple is 3.0 mV peak
to peak, while transient response is
30 ms for a 50% load change. Operating
temperature is rated at 0°C to +50°C at
full ratings, derated to 40% at 70°C.
Single quantity pricing is $39.95. The
unit is available from Power-One Inc,
Power One Dr, Camarillo CA 9301 0."
Circle 61 1 on inquiry card.
New Tandy Computers 1978 Catalog
fTandiiTcariPUT Ens)
1B7BCATALUG
A microcomputer mail order catalog
has just been issued by Tandy Com-
puters, Dept R7, POB 2932, Fort Worth
TX 76101. The 52 page, 4 color catalog
details a full line of popular brand micro-
computers and accessories, software
packages, parts and literature currently
in stock. Kits and fully assembled micro-
computer systems listed in the catalog
range in price from several hundred
dollars to more than $20,000. Among
the nationally known brands carried by
Tandy Computers are Radio Shack's
TRS-80, the IMSAI 8080, Vector 1 and
1 + , Xitan, Equinox 100, and Poly-
Morphic System 8813. Copies of the
new catalog are available by telephoning
toll free (800) 433-1679 or by writing
the company."
Circle 613 on inquiry card.
The LS-100 series digital signature
analysis product family provides the
foundation for LSI and microprocessor
electronic troubleshooting and repair.
Verification of correct digital pat-
terns provides go and no-go testing as
well as diagnostics. The series provides
for rapid identification of bad compo-
nents, printed circuit boards and entire
systems. Options include remote LED
signature display, 32 line multiplexer,
logic probes, enhanced software package
and stand alone test ability.
The LS-100 expandable series is
available in S-1 00, LSI-1 1 , or EXORciser
bus compatible plug ins, ready to go.
Prices start at $295. Contact Phoenix
Digital Corp, POB 11628, Phoenix AZ
85017."
Circle 612 on inquiry card.
AVA Introduces New RF Video Adapter
Line
AVA Electronics announces the in-
troduction of their new RF (radio
frequency) Video Adapter line. It
features over 40 adapters and accessories
suitable for home and professional
video applications. The adapters cover
phono, BNC, UHF and F connectors.
The free #478 catalog sheet describes
these products in detail and is available
from AVA Electronics Corp, 242 Pem-
broke Av, Lansdown PA 19050."
Circle 614 on inquiry card.
August 1978SBYTE Publications Inc 177
What's New?
SOFTWARE
File Management System for Floppy
Disk Microcomputers
KSAM80 is a file management system
designed specifically for floppy disk
microcomputer systems. It was originally
developed under Zilog's Z-80 OS 2.0 but
can be implemented in many existing
microcomputer operation systems.
KSAM80 was developed for applica-
tions such as inventory control, reserva-
tion systems, library systems, accounts
receivable and bill of materials process-
ing. Random storage and retrieval of rec-
ords is based on the contents of a user
defined data field within the record
which is called the key. The key must
be unique for each record and can be
any string up to 255 characters long.
KSAM80 also supports sequential
access of records starting at any point
within a file, random access by partial
key and random access by relative rec-
ord number. Sequential and random
access commands can be intermixed
freely.
Space is automatically allocated to
the file when records are added and re-
claimed when records are deleted so that
files are self-reorganizing and any num-
ber of files can be processed simultan-
eously provided that sufficient buffer
storage is available.
A number of utility programs are
available as part of the KSAM80 pack-
age. For additional information write to
EMS, 3645 Grand Av, Suite 304, Oak-
land CA 94610.-
Circle 532 on inquiry card.
A New Macroassembly Language
for 8080 and 8085 Microprocessors
SMAL/80 is a compiled, structured,
macroassembly language for 8080 and
8085 microprocessors that requires only
7 K bytes of memory. SMAL/80 state-
ments are written in a symbolic notation
resembling PASCAL and PL/M that sim-
plifies the writing of assembly language
programs. It incorporates the basic struc-
tured programming constructs, the do-
end, if-then-else, and loop-repeat, which
may be combined with and/or nested
within each other without limit to form
highly complex statements.
The package includes a 2 K byte
macropreprocessor written in SMAL/80.
The macropreprocessor permits condi-
tional expansion of statements, and un-
limited nesting of macros.
Also included in the SMAL/80 pack-
age is a translator program that allows
one to convert any 8080 or 8085 pro-
gram written in standard Intel mnemonics
into SMAL/80 without the constructs.
SMAL/80 is being offered initially in
CP/M and Isis I disk formats; the price,
including documentation, is $75. This
software is available from Chromod
Associates, POB 3169, Grand Central
Station NY 10017. ■
Circle 535 on inquiry card.
Character Oriented Processing System
for the Z-80 or 8080 Printer
The Electric Pencil II is a character or-
iented processing system. Text is entered
as a continuous string of characters and
is manipulated as such, allowing the user
freedom and ease in the movement and
handling of text.
Features of the Electric Pencil II in-
clude CP/M compatibility, disk operating
system which supports two disk drives,
file management, disk storage and retrie-
val, print formatting multicolumn print-
ing, print value chaining, page at a time
scrolling, bidirectional multispeed scroll-
ing controls, subsystem with print value
scoreboard, automatic word and record
number tally end of page control.
Hardware must include a micro-
computer using the 8080 or Z-80 micro-
computer, printer, video display (VDM-
1, VII or SOL) CP/M supported disk
system or North Star minifloppy disk or
cassette interface (Tarbell or SOL).
The Electric Pencil II is available on
CP/M. The price for the standard printer
version is $225 and the Diablo printer
version is $275. For further information,
contact Michael Shrayer Software, 3901
Los Feliz Blvd, Los Angeles CA 90027."
Circle 536 on inquiry card.
Super Startrek
Super Startrek requires a terminal
equivalent to the Soroc IQ120 or the
ADM-1 (with screen protect, screen clear
and cursor control) with 48 K bytes of
memory.
A sector map, status display and ga-
lactic map are placed on the screen in
protected areas. It includes star bases,
the USS Enterprise, the Faire Queen,
Klingons, command Klingons and cloaked
Romulans.
Examples of operational commands
are WAR (warp: sets warp factor for
moves), MOV (move: direction and dis-
tance), IMP (impulse engines: allow one
sector moves), and ABA (abandon ship
to Faire Queen).
Super Startrek is written in North
Star BASIC with complete, compre-
hensive playing instructions. The price
is $51 and the software is available from
Aaron Associates, POB 1720A, Garden
Grove CA 92640."
Circle 533 on inquiry card.
Business Software
In North Star BASIC
Available now is a series of three
business software packages in North
Star BASIC. Features of Micro-Base
Inventory are said to include multiple
key ISAM (indexed sequential access
method) disk structuring; inquiry keys
by catalogue number, manufacturer, or
item description; multiple selling price
capability for each item; formatted
screen handling; full retail or cost
extension reporting of items on hand
or on order or sold. The second module,
Micro-Base Accounts Payable, is de-
scribed as a fully featured data base
management system, with real time
inquiry for file information. Features of
this system are multiple key ISAM disk
structuring, inquiry keys by vendor num-
ber, vendor name, voucher number;
formatted screen handling; paid voucher
history file; bank account reconciliation
assistance; cash requirements forecasting.
Micro-Base Accounting system is said to
include payroll, time and material billing,
purchase ordering, accounts receivable,
accounts payable, inventory handling,
and general ledger and financial report-
ing. The price for these systems is $450
per module from Computertex, POB
66907, Houston TX 77006."
Circle 537 on inquiry card.
APL Colloquium Series
Think Inc, a company which de-
velops and markets APL application
packages, is offering a monthly collo-
quium series on APL topics. Topics
such as "A Proposed Standard for the
Interchange of APL Workspaces" and
"The Use of APL for Systems Work"
have been discussed in previous series.
Think Inc plans to continue the collo-
quium series until the summer. For
further information contact Brooke
Tompkins, Think Inc, 310 E 46th St,
New York NY 10017."
Circle 534 on inquiry card.
178
August 1978 © BYTE Publications Inc
5 PLETE SATISFACTION IS OUR GUARANTEE YOUR COMPLETE SATISFACTION IS OUR GUARANTEE YOUR COMPLETE SATISFACTION
Huge Discounts!
HOBBY WORLD ELECTRONICS
Savings up to 70% on m;
kits. For complete IC
•and IC parts and computer
?s write lor our catalog
KITS
| WAMECO S-100 P.C. Boards
8K RAM
8080 CPU
12-Slot Mother
Board
ITHACA AUDIO S100 P.C. Boards
8K RAM
Z-80 CPU
2708/2716 EPROM
Boards (New)
W/W Prototype
Board (New)
| SOLID STATE MUSIC S-100 Kits &
Bare Boards
IMB6A8K Kit
ISTATIC RAM Bare Board
|MB7 16K STATIC RAM
Kit 435.00
Bare Board 25.95
IMB8 8KA6 K EPROM
USES 2708's
Kit Less EPROMs 75.95
-<%&*&XQ*
74L$00 TTL
74LS00
74LS02
74LS04
74LS08
74LS10
74LS14
74LS20
74LJ21
74LS22
74L$30
74LS32
74LJ37
74LJ38
74LS42
74LS47
74LJ48
74LS73
74LJ74
74L-J75
74LS76
74LS86
74LS90
74LJ92
74LS93
74LJ109
74LS112
74LS113
74LS114
74LJ125
74LJ126
74LS132
.21
.21
.24
.21
.21
.85
.23
23
23
23
.30
.31
.31
60
.75
.72
35
.35
.53
.37
36
52
52
.52
36
.36
.36
.36
.46
46
75
74LS138
74LJ139
74LS151
74H153
74L1154 1.00
74LJ157 .62
74LJ160
74LS161
74LS162
74L$163
74H164
74LJ174
74LS175
74LS190
74LJ191
74LS192
74LJ196
74LS197
74LS221 106
74LS257 .71
74LS258
74LS266
74LS283
74LI365
74LJ366
74LJ367
74LS368
74LS386
81LS95
81LS96
81LI97
B1LS98
«#
3 <f
KITS
SOLID STATE MUSIC
VB1B VIDEO INTERFACE
Kit 129.95
Bare Board 25.95
RF Modulator TV-1 Converts Video
Output to RF For TV antenna
terminals, complete Kit 8.95
NEW FROM CYBERCOM DIV OF SSM
MB8A-2708 16K EPROM with
Vector Jump Kit 85.00
OB-1 Vector Jump & Prototype
Kit 49.00
Board 25.95
1 104 2 + 2 I/O Kit 139 95
SYNTHESIZER SB-1 MUSIC
Kit with
Software 145.00
IMT-1
(Continued)
8080 Machine Languages
Programming 6.96
Robots At Your Doorstep 6.95
I BEGINNERS BOOKS
Beginning BASIC 9.95
Home Computer Beginners
Glossary and Guide 6.95
Basic BASIC $ 8.95
Introduction to BASIC 8.95
Home Computers: 210 Questions
and Answers
Volume 2: Software 6.95
Microcomputer Dictionary
and Guide 19.95
■ Microprocessor Basics 10.95
Home Computers : 210 Questions
and Answers
Volume 1: Hardware 7.95
I Understanding Integrated
Circuits 4.95
Semiconductor Circuit Elements 6.95
Fundamentals and Applications
of Digital Logic Circuits 7.95
15-Slot Mother
Board 39.95
XB-1 EXTENDER BOARD
Bare Board 8.99
SSM 8080 MONITOR VI
ON 2-2708
ON 8- 1702 A
47.00
47.00
74XX
MEMORY
1702A 3.75
3.75 2708 11.50
3.50 2716 Tl 22.50
6.25 21L02 450ns 1.25
3.85 21 L02 250ns 1.60
7.95 2114 8.50
MICROPROCESSOR
25 Pin— D Sub-
miniature Solder Tail
Male 3.00
Female 3.50
100 PIN EDGE CONNECTOR,
msai spacing 3.50 (New)
TS
8080A
11.50
Z-80
24.95
Z-80A
34.95
6800
16.50
5716 W. Manchester Ave.
Suite #5
Los Angeles, CA 90045
TELEPHONE ORDERS:
Call (213) 641-4200
D Send your complete catalog
quickly.
□ Please send me the followingj
items I have listed below:
Qty. Stock No. Price
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7416
7417
7420
7423
7425
7426
7427
7430
7432
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7450
7451
7453
7454
7460
7470
7472
7473
7474
7475
7476
7480
7481
7482
.50
7483
.62
7485
.75
7486
26
7489
1.75
7490
.40
7491
51
7492
.40
7493
.40
7494
.60
7495
.60
7496
.60
74107
28
74109
.22
74121
.29
74122
.38
74123
.48
74132
.65
74141
.70
74145
65
74150
86
74151
.61
74153
.61
74154
.95
74157
.,55
74161
.55
74163
.55
74164
.85
74165
.90
74170
1.69
74173
1.10
74174
.85
74175
.75
74176
69
74177
.70
74180
.65
74181
1.75
74190
.95
74191
.95
74192
.79
74193
.80
74195
.49
74221
86
74251
1.00
74365
62
74366
62
74367
.62
74368
.62
Postage/Handling
SI. 50
Satisfaction 100% Guaranteed
California Residents Add 6%
Sales Tax
Note: Minimum Order $10.00, 5% Discount over $100.00 on I.Cs only.
State-
-Zip-
NEW
1978
IC MASTER
Over 40,000
IC's listed.
Over 2,000
pages.
Retail Value
Updated every
90 days.
$55.00 $39.99
Check catalogue for more
listings on linears, voltage
regulators, resistor books,
IC sockets and more.
Circle 170 01
Circle 25 on inquiry card.
ATWOOD ENTERPRISES
KITS
$ 79*95 4K RAM Available assembled and tested $89.95.
$ I 29*95 4K PROM Bipolar 512x8 Proms 93448/634 1 .
$ 1 49.95 8K EPROM Needs only 4K space 2716.
$ 59*95 DIGITAL I/O 8 parallel ports plus 16 interrupts.
> 99*95 ANALOG IN 32 inputs, 8 bits, 100 microseconds.
DID YOU
KNOW . . .
i
BIG SALE
I 1 each board:
I
~l
I
H
I
J
Digital I/O
Eprom programming
8K Eprom Board (without 2716's)
REGULAR PRICE
$139.85
$ 49.95 PROM PROGRAMMING can B cT P y 4 to 3 | AUGUST ONLY
$129.95 SERIAL I/O
7 serial ports, fully software controlled.
To 500 baud.
"1
I
$100.00
Extra zero insertion force sockets $5.00
MOTHER BOARD
8 SLOT 44 PIN BUS
50 Pin Edge Connector
Mother Board $20.00 ea
Connectors 2.50 ea
Card guides for above $10.00 per set.
MAKE CHECK OR MONEY ORDER PAYABLE TO:
Kathryn Atwood Enterprises
P.O. Box 5203, Orange. CA 92667
Discounts available at OEM quantities. For orders less than $25 total, add $1 .25
for shipping. California residents add 6% sales tax. Estimated shipping time 2
days ARO with money order. For checks allow 7 days for check to clear.
Beckian Enterprises All Prime Quality — New Parts Only — Satisfaction Guaranteed
EPGE CARP CONNECTORS : GOLD PLATEV .
BODY: Non brittle, solvent resistant, high temperature G. E. Velox. The finest elec-
trical properties available. CONTACTS: Bifurcated Phosphor Bronze. Gold over
Nickel.
ALTAIR TYPE : Contact Ctrs. .125: Row Spacing, .140
50/100 Dip Solder $4.00 ea. 5 pes.
IMSAI TVPE: Contact Ctrs. .125: Row Spacing, .250
$3.80 ea.
50/100
50/100
Dip Solder
Wire Wrap (1 Turnl
(3 Turnl
$4.25 ea.
$4.25 ea.
5 pes.
5 pes.
IMSAI Card Guides .25 per pair to IMSAI Prices
Note Also good for CROMEMCO.
CITHER CONNECTORS AVAILABLE
.100" Contact Ctu: .140" Rom Spacing .
15/30 Solder Evelet
22/44 Dip Solder
22/44 Wire Wrap (3 Turnl
40/80 Wire Wrap 13 Turn}
$2.30 ea.
$2.75 ea.
$2.50 ea.
$4.00 ea.
5 pes.
5 pes.
5 pes.
5 pes.
$4.00 ea.
$4.00 ea.
$2.10 ea.
$2.40 ea.
$2.20 ea.
$3.70 ea.
Note : Wine. OJnap Spacing ih .200" [Row Spacing]
156" Contact Ctxs: .140" Roto Spacing .
18/36 Dip Solder
22/44 Dip Solder
15/30 Wire Wrap (3 Turnl
$2.25 ea.
$2.50 ea.
$2.00 ea.
5 pes.
5 pes.
5 pes.
.156" Contact Ctu: .200" Row S)Xicing .
22/44
36/72
15/30
18/36
36/72
43/86
Wire Wrap (3 Turns)
Wire Wrap (3 Turns)
Dip Solder
Dip Solder
Dip Solder
Dip Solder 16800)
$2.80 ea.
$4.00 ea.
$1.90ea.
$1.95ea.
$4.00 ea.
$4.90 ea.
5 pes.
5 pes.
5 pes.
5 pes.
5 pes.
5 pes.
$200 ea.
$2.25 ea.
$1.80 ea.
$2.50 ea.
$3.80 ea.
$1.65 ea.
$1.70 ea.
$3.65 ea.
$4.75 ea.
WE ARE YOUR CONNECTOR SPECIALISTS.
IF VOU V0 NOT SEE THE CONNECTOR HERE THAT
VOU WEEP, PLEASE WRITE US. IN MOST CIRCUMSTANCES,
WE CAN SUPPLY IT TO VOU.
25 PIN PB TYPE SUBMINIATURE CONNECTORS.
CANNON: Gold Plated. The Best You Can Buy.
DB25P Male Plug
D825S Female Socket
DB 51212-1 Hood. (Greyl
DB 51226-1A Hood. (Black)
D 20418-2 Hardware Set
$2.60 ea.
$3.70 ea.
$1.00 ea.
$1.10 ea.
$0.80 ea.
5 pes.
5 pes.
5 pes.
5 pes.
5 pes.
$2.25 ea.
$3.45 ea.
$0.95 ea.
$1.00 ea.
$0.75 ea.
SAVE: BUY A COMPLETE SET.
Complete Set includes: 1 pc. DB25P: 1 pc. DB25S:
1 pc. Hood of your choice Grey or Black.
1 Set $6.50 ea. 5 Sets $6.25 ea.
Note: For D 20418-2 Hardware Set, add $0.75 ea.
270S - PRIME
SOSOA - PRIME
(450 r
$14.00
S)
ea.
$9.40 ea.
r.c
SOCKETS: VIP SOLVER
Low Profile.
14 pin. & 16 pin. $0.16 ea.
HEAT SHRINK TUBING
1/8'
Shrinks to 1/16" I. D. $0.35 per ft.
CABLE TIES
3%" and 5Vi" $0.03 aa.
WRITE
FOR LARGER OtlAWTITV VISCOUNTS
PEALERS WELCOME
MINIMUM ORPER: $10.00: Add $1.00 &0K
i Slipping. OideAi oven $25.00, we pay
the. & flipping. CaZi&. Reiidenti add 6%
Tax. NO CO. P. SHIPMENTS.
Olden Etom:
Beckian Enterprises
P.O. Box 3089 Simi, Calif. 93063
1 80 August 1 978 © BYTE Publications Inc
Circle 30 on inquiry card.
FOR ALL CUSTOMERS EXCEPT CALIF.
21L02 (350ns)
Static Rams
120 g $1.00 ea.
1702A
E-PROM
$4.75 ea.
6502
Microprocessor
5 9 $11.00 ea.
2708 (450ns)
E-PROM
8 @ $9.00 ea.
CALL TOLL FREE 800-421-5809
21L02 (250ns)
Static Rams
100 @$1.25ea.
Z— 80 A
Microprocessor
5 @ $25.00 ea.
8212
8 Bit I/O Port
25 @ $3.00 ea.
4116 (200ns)
16K Dyn. Ram
8 @ $24.00 ea.
Z-80
Microprocessor
5 @ $20.00 ea.
8224-4
Clk.Gen.&Dvr.
25 @$8.75ea
41 0D (200ns)
Static Ram
100@$9.50ea.
TMS 4044
(250ns)
16 (3 $8.95 ea
4200A (200ns)
Static Rams
25 is $10.00 ea.
7 4 LS3 6 7
Hex Buffer
100 @ .7 0?
74LS368
Hex Inverter
100 <=> .70? t
2513 (5v)
Character Gen.
5 @ $9.00 ea.
49Q1 W. R0$ECRANS, HAWTHORNE. ^A. 90250
MICROCOMPUTER
Jltff?
MICROPROCESSOR'S
FB 1 S .9 5
Z8
Z8 0A
CDP1802CO
2650
AM29QI
6502
6800
1801
B0OB-1
B035
8080A
8085
TMS9900TL
COMPON
OTHER COMPONENTS
12.00
28.00
19.95
24.95
22.95
11.95
18.95
25.00
9.9 5
2?.00
11.95
27.00
75.00
8080A SUPPORT DEVICES
j.so
9.00
1.75
8212
8214
8216
8224
8224
B226
8228
823B
8251
8253
8255
8257
8259
8275
8279
3.50
9.95
3.95
7.95
7.50
9.9 5
21.95
21.95
21.95
21.95
75.00
20.00
FLOPPY DISC CONTROLLER
1771B 55.95
17716-0] 5 7.95
KEYBOARD CHIPS
AV5— 2376 13.75
PROM'S
1702A 4.00
2704 15.00
2708 12-00
2716 30.00
2716 Intl 38.00
2758 26.60
D3601 4.50
O3604 13.00
5203AQ 5.00
5204AQ 7.50
6834 17.50
6834-1 14.95
82S23B 4.00
B2S129B 4.25
8223B 3.50
6B00 SUPPORT
6810P
68B10P
6820P
6821P
6828 P
6834P
6B50P
6852P
6860P
6862P
6871P
6875P
6B80P
4.95
6.00
7.50
5.50
11.25
16.95
9.75
11.75
10.00
14.50
28.00
8.75
2.50
Z80 SUPPORT DEVICES
3881 12-95
3882 12.95
CHARACTER GENERATORS
2513 6.75
2513 5v upper 9.75
2513 5v lower 10.95
2516 10.95
MCM6571 10.95
MCM6571 A 10.95
MCM6S74 13.25
MCM6S75 13.25
WAVEFORM GENERATOR
8038 3.50
MC4024 2.25
566 1.50
DYNAMIC RAMS
4 1 6 D/4 1 1 6
1 103
2104
2107B
2 1 7 B-4
TMS4O50
TMS4060
TMS4070-2
4096
4 1 1 6 /4 1 6 O
MM5270
MCM660S
USRT
S23S0
UART'S
AV51013A
AYS-1014 A
TR1602B
TMS6 0I 1
IM6402
IM6403
32.00
l.OO
4.00
4.25
3.9 5
4.0
4.50
32.00
4.00
32.00
4. SO
5.00
5.25
8.25
5.25
5.95
10.80
10. SO
STATIC RAMS
1-16
64
17-6 3 +
21 L02
21L02 (351
21L02 (25(
410D
1101 A
2101-1
2102
2111-1
2112-1
2114-3
2125L
2147
31 L01
3106
3107
TMS-4 044
4200 A
TMS-404S
610)
74C89
7489
7 4S201
PB101
P8155
P81S6
8599
9 107BPC
1.50 1.24
) 1.6 1.3 5
1.75 1.60
10.75 10.00
1.00 .90
2.95 2.75
1.25 1.15
3.95 3.50
2.95 2.80
11.00 10.00
11.10 9.00
37.50
2.50 2.35
3.95 3.70
3.9 5 3.7
9.95 9.00
12.95
11.00 10.00
8.30 7.40
3.25 3.05
2.25 2.10
4.50 4.00
4.20 3.40
17.00 14.00
21.00 18.00
1.8 8 1.7 5
1.6 5 1.4 5
1.1B
1.25
1.50
9.25
.80
2.60
1.00
3.2 5
2.69
9.25
8.30
2.00
3.25
3.2S
B.95
9.25
7.25
2.85
1.90
3.75
2. B0
N8T2
N8T26
N8T9 5
N8T96
N8T9 7
N8T9B
B 1 LS9 5
8 1 LS9 7
14BB
14B9
D32 5
O3207A
D3208A
D3211
B3222
B3242
D3 24 5
C3404
P3408A
P4201 A
MM5320
MM5369
TMS5501
DM8130
DM8131
DM883 3
DM8835
DMB837
MK50 240
MK50250
3.39
2.10
1.35
1.3 5
1.3 5
1.3 5
2.00
2.00
1.75
1.75
4.00
4.55
14.20
10.00
9.75
10.15
5.6
6.75
12.00
5.20
7.50
1.90
24.9 5
2.90
2.75
2.50
2.50
1.75
20.0
15.00
TU-ii
Convert TV.
Video Monitor
KIT
$8.95
JADE 8080A KIT
$100.00 KIT
BARE BOARD $30.00
MEMORY PLUS
fot KIM-1
8K RAM (21L02I
BK EPROM
ASSEMBLED & TESTED
$245.00
KIM-1
ASSEMBLED & TESTED S245.00
MODEM
80-103 A Serial I/O and FSK modem
for professional and hobby communi-
cations.
♦Completely compatible with your
IMSAI, ALTAI R, SOL, or other S-100
microcomputers.
•Designed for use on the dial phone
or TWX networks, or 2 -wire dedicated
lines, meets all FCC regulations when
used with a CBT coupler.
*AII digital modulation and demodu-
lation with on board crystal clock and
precision filter mean that NO ADJUST
MENTS ARE REQUIRED.
*Bell 103 standard frequencies
♦Automated dial (pulsed) and answer
♦Originate and answer mode
*1 1 or 300 BPS speed select
♦Complete self test capability
♦Character length, stop bit, and parity
♦90 day warranty and full documen-
tation.
PRICES:
Bare Board & Manual $49.95
Assembled (48hr burn) $279.95
JG-DCA Kit $159.95
full ASCII
PROFESSIONAL KEYBOARDS
♦ Full 128 Character ASCII
♦ Tri-Mode MOS Encoding
♦ MOS DTL TTL Compatable Output
- Two-key Rollover MODEL
756
Level and Pulse Strobe
♦ Shift and Alpha Lock
♦ Selectable parity
Positive or Negative Logic.
PRICING INFORMATION
(56 keys)
Model 756 (assembled)
Model 756 K (kit)
Model 702 enclosure
Model 710 Numeric Pad
Model 756 MF Mtg.Frame
$59.95
149.95
$29.95
$9.95
$8.95
MOTHER BOARD'S - S-100 STYLE
13 slot with front panel slot
BARE BOARD $35.00
KIT $80.00
22 Slot $149.95
Assembled & Tested
CONNECTORS
DB-25P
44 Pin
44 Pin
86 Pin -
86 Pin -
100 Pin
100 Pin
$2.25
COVER
PC & EYE
WW
(6800) PC
(COSMAC ELF
(Altair) PC
(Imsai) WW
DB-25S
$1.50
PC
$3.25
$1.95
$2.50
$5.00
$5.00
$4.50
$4.25
100 Pin- (IMSAI) PC
$3.25
::
<.
JADEZ80
-wlfi PROVISIONS lor KIT
ONBOARD ?7M md POWER ON JUMP
I2MHZI
$135.00 EA.
$149.95 EA. m*»
BARE BOARD $35.00
' i
' .
' i
>>
::
i!
i
•
JADE VIDEO
INTERFACE KIT
FEATURES $99.95
S-100 Bus compatible
32 or 64 Characters per line - 16 lines
Graphics (128 x 48 matrix)
Parallel h compositive video
On board low-power memory
Powerful software included for cursor,
home, EOL, Scroll Graphics/Character
Upper case, lower case and Greek.
Black-on-white & White-on-black.
JADE PARALLEL/SERIAL
INTERFACE KIT
$124.95 KIT
♦S-100
♦ 2 Serial interfaces with RS2 32 inter-
interfaces or 1 Kansas City cassette
interface.
♦ Serial interfaces are crystal controlled
♦ Selectable baud rates.
♦ Cassette works up to 1200 baud.
♦ 1 parallel port.
STATIC RAM BOARDS
ASSEMBLED & TESTED
8K
Ram 8 (250ns)
Ram 8B (450ns)
250ns KIT Mem-1
450ns KIT Mem-1
Bare Board
6800 Adapter for
S-100 system for
Mem-I only KIT
16K Uses2114L
Ram 16 (250ns)
Ram 16B (450ns)
32K
JG-32K (250ns) $875.00
JG-32KB (450ns) $775.00
450ns KIT $675.00
$169.95
$139.95
$169.95
$125.00
$25.00
$12.95
$375.00
$325.00
DYNAMIC RAM BOARD
by S. D. Computer Products
On board refresh is provided with no
wait states or cycle stealing required.
+8VDC 400MA DC, +18VDC 400MA
and-18VDC 30MA DC.
EXPANDABLE 32K (uses 41 1 5) 200ns
8K Kit $151.00 24K Kit $367.00
16K Kit $259.00 32K Kit $425.00
EXPANDABLE 64K (uses 4116) 200ns
16K Kit $281.00 48K Kit $757.00
32K Kit $519.00 64K Kit $995.00
16K STATIC BOARD
with memory management can be used
with Alpha Micro or Cromenco
Systems.
RAM 65(250ns)
RAM 65B (450ns)
$350.00
$390.00
COMPUTER MAINFRAME
Includes: $295.00
Power Supply +8v at 18amps
+ 16v at 2 amps
Mother Board - 12 slots with
connectors Assembled & Tested
Has Whisper Quite Fan & AC line fitler
Cabinet size 7"H x 19"W x 22" D
THE PROM SETTER
WRITE & READ
EPROM
1702A - 2708 - 2716 - 5204
6834
♦Plugs directly into your ALTAIR,
IMSAI computer.
♦Includes main module board and
external EPROM socket unit.
♦The EPROM socket unit is connected
to the computer through a 25 pin
connector.
♦Programming is accomplished by the
computer.
♦Just read in the program to be written
on the EPROM into your processor
and let the computer do the rest.
♦Use socket unit to read EPROM's
contents into your computer.
KIT $210.00
ASSEMBLED
1
375.00
S-100 Power Supply with Cabinet
Power supply +8v at 18 amps
±-16v at 2 amps
Has connector for Power output
MODEL UPS=600 size 5"Hx8"Wx6V-."D
PRICE $149.95
E-PROM BOARDS
MR-8 (8K uses 2708) KIT
with 1K RAM
MR-16T (16K uses 2716) KIT
with 1K RAM
MM-16 (16K uses 2708)
RAM/N/ROM (16K uses
any E-PROM) KIT $117.00
JG-8/16 (uses 2708 or
2716) KIT $59.95
BARE BOARD $30.00
$99.50
$99.50
$99.00
EXPANDABLE E-PROM
S.D.Sales
16K or 32K EPROM
$49.95 without
EPROM
Allows you to use either 2708's for
16K of Eprom or 2716's for 32K of
EPROM.
FLOPPY DISC INTERFACE
JADE Floppy Disc (Tarbell Board)
KIT $175.00 ea.
S.D. Sales Versa Floppy
Kit
$149.00 ea.
MODEL 801 R Shugart with
Disc Cabinet
Includes Cabinet, Disc. Drive, Power
Supply, Cable, Fan & Data Cable.
Has AC line filter.
Cabinet size 10"H x 10"W x 16"D
MODEL DM 2700-S $ 835 . ea
Computer Products
RETAIL STORE HOURS Monday ■ Friday 9-
Salurday 9-
Discounts available al OEM quantities ADD SI. 50
under 10 lbs. for shippmc. Califon
6% sales tax.
NEW CATALOG NOW AVAILABLE
tcsidents add
american!
|e»:re^
Cards
Welcome
Circle 195 on inquiry card.
BYTE August 1978 181
CONVERT ANY TV
TO A HIGH QUALITY MONITOR
• Hot Chassis or Transformer sets
• 64-80 characters per line
• By-passes tuner & I.F.
• Normal viewing unaffected
• Safe — Easy Installation
ACVM Hi-Resolution $24.95 ppd
RFVM C h2-6 Modulator $9.95 ppd
VAMP INC. Box 29315
Los Angeles, Calif. 90029
Calif. Residents add 6% Sales Tax
Circle 378 on inquiry card.
CANADIANS
Announcing
HAMILTON LOGIC
SYSTEMS
Specializing in logic
devices, microprocessors,
memorys, TTL, Cmos ,
etc.
Send for your catalogue
Box 7
STONEY CREEK
ONTARIO L8G 3X7
DISKETTES
VERBATIM for Your DRIVE
Ea. In
boxes
of 10
In
boxes
10
Circle 153 on inquiry card.
I Msr $Q qn
I 16 Sector U.uU
STANDARD U If) I
Soft or Hard Sector TilU«
CP/M 1.4 ttATttU'lti
PLASTIC BOX ff,B2 $ 3
HAZELTINE CRT 1 500 M 000
Complete 1*2*3 Computer t rt i r
System: Hazeltine 1500, *J) 1 43
Horizon-2, Centronic 779
Visa, Master Charge, Cash, C.O.D.
MANCHESTER EQUIPMENT CO., Inc.
30 Midland Ave. • Hicksville, N.Y. 11801
Call Collect: (516) 433-0613
Circle 217 on inquiry card.
MIOROVERTER
A SPECIAL COLOR MODULATOR FOR APPLE II USERS!!
UHF Vernon, rjperatt* abovt Channel I*. Eliminate! worm*
Optra tit above tti« switching harmonica of the computer,
thereby yielding a cleaner, worm-tree picture. Tunable
over a minimum of 4 channel!. Interfaces directly with
the Apple II as well as most other mieres. Comet with
video cable and RF output stub coupler. Two-toned cowl
type decorator cabinet. Size: 5.5cm x 8,5cm i 11.5cm.
Power: +5V. Current approii I ma. Self-powered with 4
pencell batteries. Operating life in excess of 1000 hours
or near shell-lift of batteries. Excellent stability. Precise
frequency adjustment. Ho assembl y required except for
installation ef batteries, net supplied. MODE L MVX-500.
AVAILABLE FROM YOUR LOCAL COMPUTER DEALER
or direct from ATV RESEARCH. COST Including shipping
anywhere in USA and Canada — S3S.O0.
" PIXE-PLEXER " An IC type video-to-RF modulator
includes FM sound tub"tarrler, color suborner and
separate R-Y and B-Y inputs. Oeilped around the
LM-1889 chlj. A designers dream with full data sheets.
Model PXP-4500. Kit form. S24. 60 postpaid.
" PIXE-VERTER " "Hie original computer video-to-RF
I nterface module. Kit form: S5.50 Model PXV-2A
|PHCTtEefWltiT^ODAYrDIAM5-5n^
WVi
13-B Broadway ATV Research Dakota City, Nebr.
6800 OWNERS
At last a real world fully address-
able SS-50 control interface. Con-
trol robots, appliances, organs, solar
devices, etc. Applications limited
only by your imagination. Easy to
use with machine language as well
as basic. Fully buffered board
plugs directly onto mother board
and responds to any address de-
fined by user. 8 fast relays latch
data while 8 opto-isolators allow
handshaking capacity.
Kit $98.00
Assembled and tested $125.00
Visa & Master Charge
Shipped pre-paid
TRANSITION
ENTERPRISES INC
Star Route, Box 241
Buckeye AZ 85236
S-IOO Kits
at Discount Prices
-II slot mother board with sockets
and active terminator $80**
•16 K EPROM board for 2709 - s $48~
•8 K static ram $125"
1
There's much more, including
complete systems; sand for our
flyer.
PCE ELECTRONICS
4782 DEWEY DRIVE
FAIR OAKS, CA. 95628
•Ma.lt, Chorg. • Add 5T. (or shipping,
•Vl.a oxc... refunded.
• prion, ordtr. • Calif, rt.ldanu add
(916)966-7033 6% . all. (at.
- No COD
Circle 17 on inquiry card.
Circle 377 on inquiry card.
Circle 288 on inquiry card.
BIT BASEMENT
BARGAINS
S0R0C IQ120 [assuled] ... $869.95]
| LEAR ADM-3P, [assbled] ...$859,951
LEAR flOM 1A [assbledl ..$1199.95
L 16K RAM BOARD [assbled] $495.00 j
250nS 180 day warranty
[CENTRONICS 779 $1139.95'
MICR0P0LIS 1042 Mod I . $779.00
BIT BASEMENT
P.O. Box 1719
Santa Monica, CA 90406
£E (21 3) 322-9070 FBT
all items shipped FOB factory
ATTENTION MOTOROLA
MEK6800D2 USERS
4 Slot Card Rack
Designed Speicifically for the
MEK, MMS68104 MEMORY
BOARD, EXORciser, and
Micromodule Boards.
Kit $64.95
Assembled $79.95
Check, Money Order, VISA or MC
add $2.00 shipping, PA. residents
add 6% sales tax.
DEALER INQUIRY WELCOME
PENTEC, INC.
139
Ttlco 2
DAA
Style
S185
SI60
USR-310
ORIGINATE
ACOUSTIC
COUPLER
Operates With
Any Standard Telephone
Direct 1
Also Available: Connect
Style
USR-330 Onginale/Aulu Answer Modem . . $324
USR 320 Auto Answer Only Modem J299
(1 FCC CertilierJ Package. Connection to phone lines via
standard extension phone jack )
12 Connection lo phone lines via CBS-1001F DAA which can be
leased Irom phone company lor appiox J5 007mo plus installation
tee)
INTERFACES:
• USR 310 - RS232C only
• USR 320 and USR 330 - RS232C and 20mA
(Specify with order II both interlaces are required, add $10 to
unit price )
ALL UNITS FEATURE:
• 0300 Baud Data Rate • Fully Assembled and
• Stand Alone Unil Tested
• Halt/Full Duplex • Optional Annual
• 90 Day Wananly Maintenance Coverage
Prices include shipping and handling in continental U S Illinois
Residents add 5°. sales lax
U.S. ROBOTICS. INC.
Bo, 5502 . Chicago. Illinois 6068(1 / 13121 528 9045
Circle 31 on inquiry card.
Circle 299 on inquiry card.
Circle 386 on inquiry card.
Circle 387 on inquiry card.
CO
IT WILL TELL YOU WHERE TO GO -
CPU-1 TH 8080A CPU BOARD WITH
8 LEVEL VECTOR INTERRUPT.
$30. BARE $185. KIT
$220. ASSEMBLED AND TESTED
DEALER INQUIRIES INVITED
UNIVERSITY DISCOUNTS AVAILABLE
W7T7C
™ WAMECO INC.
/nC. 3107 LANEVIEW DRIVE SAN JOSE CA. 95132
2708/2716 EPROM
MEMORY BOARD
* S-100 BUS
* 1-32 KBYTES USING EITHER 2708 OR 2716 EPROMS
* HIGH/LOW LIMIT ADDRESS RANGE SELECTION
* MEMORY BANK SELECT OPTION
* SOL^COMPATIBLE MEMORY DISABLE
* SELECTABLE WAIT STATES
* FULLY BUFFERED INPUTS AND OUTPUTS
* DOUBLE SOLDER MASK
* SILK SCREENED PARTS LAYOUT
* COMPLETE DOCUMENTATION
$30. BARE
$100. KIT (LESS EPROMS)
TESTED AND ASSEMBLED $130.
(LESS EPROMS)
DEALER INQUIRIES INVITED
UNIVERSITY DISCOUNTS AVAILABLE
inc. WAMECO INC. 3107 LANEVIEW DRIVE SAN JOSE CA 95132
TM
i -Electrolabs
Educational Grade VIDEOTAPE Special: y/xZW 20 boxes/$1 25.00
The "Pro" fully encoded ASCII Keyboard by Cherry. Auto RE-
PEAT feature, 5 special function keys. 300mA/5V. (Shown as
mounted in 'The Case' .Below) $119.00, 3/99.00, 10+/89.00
USED SYLVANIA
12" MONITORS
You Fix: $24.95
Working: $69.95
Cold Chassis, 25lbs.
The Dumb Terminal for Smart People
80X24 with full 128 char. ASCII UC+LC
font with all control characters displayed.
300-19,200 baud RS232. 2nd font addressable
from keyboard in you-program-it 2708 for
APL, Graphics sets, etc. Plug in monitor
I/O connector, 110V AC and you are ready.
INCLUDES: 'The Case', Cherry Kbd. A used
monitor, ESAT 200A, all options except
vector addressable cursor and modem.
Bulletproof design and construction.
Normally $675.00 What you always
wanted your ADM3 to be:
SYSTEM"A" $649.00 10/S599.00
PO Box 6721 Stanford
THE FANTASTIC!
MEMOREX FIVE-FIFTY
an 94305
415-321-5601
* Hard and Soft Sectoring
* Single and Dual Density
* Double side configuration
as a retrofit at any time.
*U 01220V, 50160Hz
"Pin for pin compa table with
Shugart 800,801,850,851
(50 pin edge connector)
$536,2/499, 5/475,10/449
25/425, 100/405
Double Sided Retrofit $299
"The Case" Beautiful and sturdy
anodized aluminum case in deep black designed to contain the
ESAT 200A, and with a bezel cut out for the Cherry 'Pro' keyboard,
(installed as shown above) Choose deep brown, light yellow, or crim-
son to accent or color code your installation. The only choice for
hard-use institutional and educational applications. $69.00, 10/ 59.00
MINIDISKETTES (5.25') 1-9 10-24 25+
10, 16 or Soft Sector $4.79 4.65 4.45
STANDARD (8') DISKETTES
Hard or Soft Sector $5.99 5.33 4.79
CASSETTES
R-300 Certified Phillips Type $5.25 4.99 4.35
1-150 Certified for aodio decks $4.60 4.30 3.90
('Kansas City' & SWTP formats)
SURPLUS Muffin type fans ST. 95. Lambda Power Supplies
SV/70A-S 145.00, 35.S-S89.00. 16A-49.00. 12V/7.3A-S69.00.
Cassettes and Diskettes Available.
OUR CATALOGUE
Contains IC's, T.I. Sockets (1 cent/pin. if you
ask) Advice and much more. It is free.
Shipping and Handling: Surface: $o.40/ib. Air: $0;75/ib., 1.00 minimum
Cal. Tax: 6.5% Insurai
Insurance: $0.50 per $1 00.00
Circle 1 15 on inquiry card.
BYTE August 1978 183
What's New?
SYSTEMS
User Programmable Intelligent Terminal System
Fully user programmable, the Mini
Disk Terminal (MDT) 400 is an intelli-
gent terminal system which can be used
for a variety of distributed data proc-
essing applications including data entry,
test processing and data communica-
tions. The MDT-400 features: mini-
diskette; 8 bit microprocessor and
communications interface; high resolu-
tion video display with 16 line by 80
word format, scrollable through 2560
character buffer; 122 key solid state key-
board with 18 user defined keys and
loadable formats; integral minidisk with
87 K byte capacity in IBM soft sector
format; low and medium speed character
printers for hardcopy output; asyn-
chronous and binary synchronous com-
munications interfaces for line speeds up
to 9600 bps; program development sys-
tems supporting assembler and high level
language and text processing applications
package.
Representative prices include: Model
401 with 8 K bytes programmable mem-
ory, integral minifloppy, video and key-
board is priced at $4275; Model 402
with 15 K bytes programmable memory,
integral minifloppy, video and keyboard
is priced at $4500; Model MDT-441 low
speed, 60 cps, matrix printer is priced at
$2495. For further information, write to
Compugraphic, 80 Industrial Way, Wil-
mington MA 01887."
Circle 543 on inquiry card.
Floppy Disk Microcomputer Supported by Custom Software
Low Cost, Do It Yourself Computer
An integrated microcomputer from
Britain incorporates floppy disk drives
and software. The Rair Black Box dual
disk drives accept 5V4 inch (13.3 cm),
single sided, reversible, soft sectored
floppy disks, each with a capacity of
81.92 K bytes. Each disk has 40 tracks
with 16 sectors per track. Transfer rate
is 125,000 bps; latency is 100 ms; and
access time is 40 ms track to track.
The microprocessor handles up to
80 instructions; cycle time is 1.28 ms.
The unit is housed in a self-contained
desktop cabinet.
The programmable memory contains
65.536 K bytes. Software includes a disk
operating system, an extended BASIC
interpreter, a relocatable FORTRAN
compiler, and a COBOL compiler. Other
features include dual serial IO ports and
an 8 slot mother board for system
expansion.
For further information contact
Rair, 30-32 Neal St, London WC2H 9PS
ENGLAND."
Circle 544 on inquiry card.
Two New F8 Products for the Personal Computer User
The introduction of two new F8
products for the personal computer user
and design engineer has been announced
by Comptronics, 19824 Ventura Blvd,
Woodland Hills CA 91364.
The F-8S100 is a processor board
compatible with the S-100 bus. The unit
provides sockets for 2 K bytes of eras-
able read only memory monitor, two
PIO sockets and connections for six IO
ports. The board has 64 bytes of scratch
pad programmable memory and a fully
buffered data bus. The Model F-8S100
sells for $239 as a kit or $275 assembled.
The second product is an F8 micro-
computer, Model KD80, with keyboard
and 6 digit display. The unit provides
audio interface and speaker compatible
with the onboard KD-BUG (3856) music
routine, 2 K bytes of random access
memory expandable through an S-100
connector, and 1 K bytes of erasable
A new do it yourself computer
called SKIP II has 1 K bytes of program-
mable memory, LED display of both
address and data, hexadecimal keyboard,
screen printed front panel, printed cir-
cuit board and National Semiconductor's
SC/MP computer chip. It can be built for
less than $100. This includes detailed in-
structions, system checkout guide and
troubleshooting manual. A programming
guide illustrates all of the 46 instructions
with simple programs which explain
what the computer is doing at each stop.
It is said to be ideal for the beginner.
Contact NBL, POB 1564, Richardson
TX 75080."
Circle 545 on inquiry card.
read only memory with four additional
2708 sockets. Model KD80 sells for
$375 as a kit and $425 assembled."
Circle 546 on inquiry card.
184 August 1978 © BYTE Publications Inc
CaIiFornIa IncIustriaI
Post Office Box 3097 B • Torrance, California 90503
Hazeltine 1400
cost effective
CRT TERMINAL
H59
plus
shipping
The Hazeltine 1400 Vidio Display Terminal is designed to
optimise interactive real-time operations. The interface is
capable of either local or remote connection through an E1A
RS232-C interface at baud rates that are switch selectable
up to 9G00 baud. .
, I j I ■ I j 1 j I ■ I j I j I ■ I ■ I ■ I ■ H E
• All 128 ASCII Codes | jjj | a |w| t \ i> | » | r | u | . \y\ % |:a,[ »"
• 64 Displayable Characters L.«.| *
• 24 Lines; 12 inch Screen ' rr,;i
• 80 Characters per Line
■ Self Diagnostic Test
H H^H-l-lim-l-l-H
Quantity pricing upon request.
CONNECTORS
c3 "°» L
JUUU1UU.
t?7 — bb — he
I ft'l'I'I'lTPI'l 'I'lTTj
your c.ttce
DB25P
male plug & hood
or
DB25S female
»3.95
Qty. fe. male hd.
10 3.45 2.4S 1.15
25 3.15 2.25 1.05
100 2.85 1.90 .95
500 2.25 1.60 .85
IK 1.97 1.37 .73
Edge
Connectors
100 PIN
IMSAI/ALTAIR
S-100 • GOLD PLATED • .125" CENTERS
Altair .140 row, soldertall $5.93 3/516.50
Imsai .250 row, soldertall $4.98 3/311.95
3 Level Wire Wrap .250 row. . . $4.98 3/$13.00
SPECIALS
W/W same as above without ears$3.50 3/$10
72 (dual 36) W/W .156" centers. . . $2.50 3/$6
498
■ 10 lor S45.
■H _■» certified Digital
SCOtCH CASSETTES
Diskettes
8 inch Soft (IBM)
8 inch 32 sector
Mini Soft sec.
Mini 10 sector
Mini 16 sector
Won't drop i BIT!
CALIFORNIA
INDUSTRIAL
is an
Authorized
Dealer of
Scotch Brand
Dataproducts
S-lOO Mother Board
18 slot
IMSAI
HEXADECIMAL KEYBOARD
Maxl-Swilcri hexadecimal keyboards aro deaifjned lor ^<J /| QE
microcomputer syatoma lhal require 4bti output fc J^ei3"#B
In alandord hex code.
Each assembly consists ol 18h«mell-
cally sealed reed switches and TTL "on
shot" debounce circuitry.
Reliable low tnctlon ocotal resin
plungers are credited for Ihe smooth
operation and long lile ol this premium
keyboard
Requires single +5 volt supply.
TEIXTYPEM0DEL43
New from Teletype, Ihe Model
43 is capable ol printing 132 ASCII
characters per line. Sand and recslve
data at to or 30 Char, per second. Key>
board generates all 128 ASCII code combine
tlons. RS-232 Interlace, same as Ihe popular
Model 33. Data sheet sent upon request. Manufac
turer suaqested price S1377.00.
IMMEDIATE DELIVERY '1219
TTL model with NOVATION brand
Acoustic Modem. *1419
r M^\
MAXI-SWITCH
ASCII KEYBOARD
,3n»B4.97
Definitely the best small system keyboard that
we have seen. Maxi-Switch has incorporated
all the important keyboard features at a reason-
able price. Full 128 ASCII functions, "N" key
rollover, automatic repeats, user designated
special function keys, escape, control & lots
of others. Data sheet upon request.
'24.88
,i . km ft UNIVAC
KEYBOARD
FROM ATARI
COLOR TELEVISION
R.E MODULATOR
1395
The Atari R.F. Modulator
computer dais to be
displayed directly upon your
Isltnrj television system.
nverts Ihe slg-
01 her video sources Into
television frequencies.
Operates from single 5
voll supply. Complete
with metal case, mating
RF. connector and 15
leei ol coax cable. Schematics
and instructions Included.
SPECiRL
APPLE (I
iK ME
COLOR •GRAPH
$1024
IBK MEMORY
COLOR 'GRAPHICS* SOUND
MlB-Suf.
Retail....
>1195
Potter & Brumfield
REED RELAY
5voltj;oii,pulls3.5v.
This joystick fealui
meters. IM
lite angle
lour IO0K polemic-
proportional
si Ihe dick Perfect tor
isd slereo >
1 W SPST
r»
10 100 IK
.97 .79 .65
2U02
LOW POWER
45Q nS
74 no
74116
74120
74121
74122
74123
74125
74126
74128
74132
74136
74141
74145
74147
74148
74150
74151
74153
74154
74155
74156
74157
99
i x\
74160
1.19
1 S<
1*2
74161
.99
rlftftii
74162
74163
74166
1.49
.99
1.19
301H
.39
13
7442
7443
74t70
2.49
7445
74173
1.49
7446
74t74
1.19
7403
7448
74176
.99
7450
25
74177
.99
7451
7453
.25
7408
7409
.25
.25
7454
7460
.25
.25
CMOS
4001 25
309K
310H
.99
1.19
7413
.49
7474
.35
4008
1.49
312H
T99
.69
.25
7422
.49
7482
99
4013
49
320K-12 1
7425
.39
7485
.99
4015
1.39
32QT-5
7427
.39
7488
7489
3.40
2.79
4017
1^29
320T-12
7429
.39
7490
7491
49
4019
1.79
H19
7492
7437
39
7493
7494
.49
4022
i3s
340K-5
7419
7440
.39
.39
7495
.79
4024
4025
4027
4028
1.19
25
.69
1.25
340K-12
340T-5 J
3407-12'
4030
.69
4032
49
350N .99
351CN .65
370H 1.29
370N 1.29
373N 3.19
377N 3.99
380N 1.39
381N 1.79
382N 179
NES55v 49
NE556 1.29
NE565H 1.49
NE565N 1.79
NE566N 125
703CN 45
709H 39
709N 39
710N 79
71 1H .39
711N 39
723H 55
723N .55
7Z5H 3.49
733H 149
733N .99
739N 1.19
741 N .09
747N .79
748H .39
748N .39
1414N 1.75
1458 .69
UAttT
AY5-1013A
$ 4.98
SPECIAL
GENERAL INSTRUMENT ASCII Keyboard Encoder
AY &3600 Prime but house marked only £4.95
Digital Cassette Drive
COMPUTER CONTROLED
*79. 50
This precision I/O assembly features
remote software controlled search
capabilities. Two independent capstan
drive motors allow the computer to
control direction and speed of the
transport.
The assembly consists of a Raymond
cassette transport, chassis, mother-
board and three edge cards: read/write,
capstan drive & control card.
Current replacement valued at over
$700.00. Schematics and complete
documentation included. USED, but in
excellent condition.
*19.98
S-100 PROTOTYPE BOARD |
Stf 00- Maximum design ver- * 4
sollilty along with standard
address decoding ond buf-
fering for S100 systems.
Room for 32 uncommitted 16
pin IC's, 5 6 us buflsi (V de-
coding chips. 1 DIP ad disss
selecl owner), o 5 von regu-
lator ond more.
WWIOO-WIre wrap btead-
booid. similar lo the GPIOO.
Allows wire wrap ol alt sizes
af sockets In any sites ol
sockets In any combination
An extra regulator posNion
(or multiple voftago appiico-
$.69
Conductor Ft.
RIBBON WIRE
TWISTED PAIR
Transistors
■a. 10 so loo
2N2222A .20 .18 .16.15
2N3055 .69 .65 .59.55
Ml 3055 .79.75.69.65
2N3772 1.59 1491.39129
2N3904 .15 .11 .09.07
2N3906 .15 .11 .09.07
Diodes
10 25 100
1N4002 100 v. .08 06.05
1N4005 600.. .10.08.07
1N4148 signal .07.05.04
jumbo red aa. 10 25 100
LED'S *15.13.11 .09
Power Adapter
6vdc,140mAS1.39
7vdc,1.4 A. 5.50
9vdc. 15mA. 1.19
10 y Ac, 300m A.
•"&
Binding Posts
5 -WAY
3lor*U9
20 100
>35 .29
SOLDERLESS
TERMINALS.
INSULATED
'.98 1
Specily^lBilo-M"'
100 500 Ik
450
12131679-9001
RELAYS
SPOT MINIATURE
10 25 100
S l.l"ea. 1115 104 .89
Coil 12 Volt dc.
7 Amp Contacts
P. C. Board Mount
umbwheel
switch
|Ten position
BCD
l 139 M .
10 50
Ji.19 .89
CAPACITORS
ELECTROLVTICS
aa. 10 50
Miniature
Switches
$ I w
$.98
your choice
10 50 100 111
80,000/10v. 395 349 2.95
4500/50v.«»9 135 U9
1000/lSv 1.55 49 .45
axial
S.88 .81 .73 .66 |
SPDT Miniature Toggles
7101C&K 0N-N0NE OH
7107 jot ON-OFFImnt OK) I
7101 CK ON-(moment.OK)
Rocker JBT DPDT
Rotary 3P-4-Pos.
Rotary 3P-6Pos.
Push B (NO) S39ea4/51
DIP Switch
DISCOUNT
Wire WrapXenter
Heavy
dutf grounded
power cord and mating
chassis connectors.
PANASONIC
*98
A"
450mA.
IC SOCKETS
wire wrap
ea. 25 50
low profile
aa. 25 50
8
17' 16 15
14
37<36 35
18 17 16
10
38 37 36
19 18 17
24
99 93 85
36 35 34
40
169 155 139
63 60 58
S29.95 ,
BW630
son.
s .98
KYNARKp
S00 1,000 11,000
*9. S15. $105.
Circle 39 on inqi. ryr card.
BYTE Aiikusi 197H 185
What's New?
Choice of Speeds in
New Acoustic Coupler
Binary Synchronous or Synchronous
Data Link Control Chip
A synchronous receiver and trans-
mitter chip that can handle either
binary synchronous (BiSync) or syn-
chronous data link control (SDLC)
protocols in microcomputer systems
is available from NEC Microcomputers
Inc, Five Militia Dr, Lexington MA
02173. This uPD379 is an N channel
MOS device that is packaged in a 42 pin
ceramic dual in line package. The part
operates at 800 K bps. The uPD379 can
operate in full or half duplex mode, is
directly TTL* compatible, has three state
data outputs, has a programmable syn-
chronous word (character), contains de-
tection and rejection of flag, abort and
idle patterns, has zero insertion and re-
jection, and an indication of overrun and
underrun errors. The operation mode,
data rate and synchronous character of
the uPD379 can be changed through the
use of external control. The uPD379 is
priced at $16 in quantities over 100."
Circle 627 on inquiry card.
Auto Answer Modem
The USR-320 is a hardwire, asyn-
chronous, auto answer modem that op-
erates in half and full duplex modes at
data rates of up to 300 bps. The design
uses integrated circuits, crystal con-
trolled digital receiver and transmitter
frequencies, and computer designed ac-
tive filters. The unit comes with power
supply and is housed in the desktop case
shown. Connection to voice grade tele-
phone lines is via a standard CBS-1001F
Data Access Arrangement (DAA). The
USR-320 is available with an EIA
RS232C interface, a 20 mA current loop
interface or both. The USR-330 with
RS232C interface is priced at $185;
with 20 mA current loop interface $185;
and with RS232C and 20 mA current
loop interfaces $195. Contact US
Robotics Inc, POB 5502, Chicago IL
60680."
Circle 628 on inquiry card.
Attention Surplus PDP-8 Owners
An LED conversion kit for the
PDP-8/E and PDP-8/L minicomputers
is now available from Scientific Test
Systems, POB 741, Wallingford CT
06492. The kits are available to enable
replacement of standard incandescent
lamps used in the PDP-8/E and PDP-8/L
with light emitting diodes, to eliminate
the problem of burned out bulbs. The
kits are complete with a set of direct
replacement LEDs and instructions for
modification of the front panel control
board circuitry. The conversion kit
for the PDP-8/E is priced at $39.95 and
$69.95 for the PDP-8/L conversion kit."
Circle 629 on inquiry card.
Factory Tested
Used Modems to Cut Data
Communication Costs
The availability of used ICC modems
at prices significantly lower than new
has been announced by the Special Offer
Division of Racal-Milgo Inc, 8600 NW
41st St, Miami FL 33166. According to
the company, these modems have been
factory tested, and are covered by the
same warranty as new equipment. This
includes one year for purchased units,
and for the full term of units under
lease. The used equipment available
includes both medium and high speed
modems, operating at data rates of 2000
bps, 2400 bps, 3600 bps, 4800 bps,
7200 bps, 9600 bps and 19.2 K bps.
Current information on used modems
and related equipment is available from
the company."
Circle 630 on inquiry card.
The Model AC-312 Acoustic Coupler
from Digicom Data Products Inc, 1440
Koll Cir, Suite 108, San joseCA 95112,
offers interchangeable high and low
speed capability, field convertible from
300 bps to 1200 bps, using CMOS elec-
tronics. The unit accomplishes terminal
to computer communication over dial
telephone lines. It is Bell 202 half duplex
compatible when configured for 1200
bps operation, or Bell 103 compatible at
300 bps configuration. The two in one
concept permits users the flexibility of
using the same desk styled enclosure for
either 300 or 1200 bps operation by
field-installing the relevant coupler elec-
tronic board. Model AC-312 also has
Western Electric compatible 5 bps re-
verse channel capability. The AC-312
single unit is $495 (1200 bps), Model
AC-312 (300 bps) is $245. The Bell com-
patible 202 electronic board for field
upgrading to 1200 bps is $370. The 103
series 300 bps board replacement is
$150."
Circle 631 on inquiry card.
New Model 88-Modem
The Model 88-Modem provides com-
munications over either the switched
telephone network or private lines at any
software selected bps rates between 66
and 600 bps. The modem is fully com-
patible with Bell System type 103A
modems and provides either half or full
duplex operation. It is S-100 bus com-
patible and includes a serial 10 port and
an originate or answer mode modem on
one board. Features implemented in
hardware include pulse code dialing in
originate mode, automatic break and dis-
connect, and dial tone detection. The
modem includes an 8 pole transmit and
8 pole receiver filter, self-test electronics,
dial tone detection, filter as well as error
detection electronics including parity,
overrun, etc. The dial tone detection cir-
cuit allows the dial tone to be positively
identified prior to auto dialing of origi-
nate calls. Extensive software is included
with the 88-Modem including patches
for MITS BASIC and North Star DOS
version 3. The modem is available in kit
or assembled form from International
Data Systems Inc, 400 N Washington St,
Suite 200, Falls Church VA 22046."
Circle 632 on inquiry card.
186 August 1978©BYTE Publications Inc
• ••"
t ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• f J*
• •*******••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••■•••••••••••■•••« z • _• ■
•
••••••
Hetf!
f
16K E-PRUWrorcU
KIT FEATURES:
IMAGINE HAVING 16K OF SOFTWARE ON LINE AT ALL TIME!
S-10O llmsai/Altair) Buss Compatible!
PRICE CUT!
1. Double sided PC board with solder
mask and silk screen and gold plated
contact fingers.
2. Selectable wait states.
3. AM address lines & data lines buf-
fered!
4. All sockets included.
5. On card regulators.
KIT INCLUDES ALL PARTS AND
SOCKETS (except 2708s). Add $25. for I "HEnim
DEALER INQUIRIES INVITED!
JfltfJJl
$57.50 kit
SPECIAL OFFER:
WAS $69.95
assembled and tested.
Our 2708's (450NS) are $12.95
when purchased with above kit.
1A
S\M
KIT FEATURES:
ADD
$20 FOR
250NS
1. Doubled sided PC Board with solder
mask and silk screen layout. Gold
1
plated contact fingers.
. All sockets includr '
Fully buffered
II sockets included,
on
data lines.
4. Phantom is jumper
pin 67.
5. FOUR 7805 regulators are provided
° nC,rd - (450NS)
all address and
selectable
BK LOW POWER RAM KIT $149 00
S-100 (Imsai/Altair) Buss Compatible! 2 kits for $279
Fully Assembled & Burned In
$179.00
Blank PC Board w/ Documentation
$29.95
Low Profile Socket Set 13.50
Support IC's (TTL & Regulators)
$9.75
Bypass CAP's (Disc & Tantalums)
$4.50
USES 21 L02 RAM'S!
MOTOROLA QUAD OP - AMP
MC3401. PIN FOR PIN SUB.
FOR POPULAR LM 3900.
3 FOR $1
ALARM CLOCK CHIP
N.S. MM5375AA. Six Digits.
With full Data. New!
$1.95 each
MOTOROLA 7805R VOLTAGE REGULATOR
Same as standard 7805 except 750 MA output.
TO-220. 5VDC output.
44c each or 10 for $3.95
FULL WAVE BRIDGE
4 AMP. 200 PIV.
69* 10 FOR $5.75
NOT ASSOCIATED WITH DIGITAL
RESEARCH OF CALIFORNIA, THE
SUPPLIERS OF CPM SOFTWARE.
450 NSI 2708 EPROMS
Now full speed! Prime new units from a major U.S. Mfg. 450 N.S.
Access time. 1 K x 8. Equiv. to 4-1 702 A's in one package.
$15.75 ea
4 FOR $50 00
OUR LATEST COMPUTER KIT!
WHY THE 2114 RAM CHIP?
We feel the 21 14 will be the next industry
standard RAM chip (like the 2102 was).
This means price, availability, and
quality will all be good! Next, the 21 14 is
FULLY STATIC! We feel this is the ONLY
way to go on the S-100 Buss! We've all
heard the HORROR stories about some
Dynamic Ram Boards having trouble
with DMA and FLOPPY DISC DRIVES.
Who needs these kinds of problems?
And finally, even among other 4K Static
RAM's the 2114 stands out! Not all 4K
static Rams are created equal! Some of
the other 4K's have clocked chip enable
lines and various timing windows just as
critical as Dynamic RAM's. Some of our
competitor's 16K boards use these
"tricky" devices. But not us! The 21 14 is
the ONLY logical choice for a trouble-
free, straightforward design.
FULLY S-100 COMPATIBLE! FULLY STATIC, AT DYNAMIC PRICES!
1 6K STATIC RAM KIT
*359 00
COMPLETE KIT
<F
SPECIAL
INTRODUCTORY OFFER!
Buy 2 KITS (32K; for $650
450 NS
Blank PC Board with Documentation
$33.00
LOW PROFILE SOCKET SET- $12.00
ASSEMBLED & TESTED - ADD $30.00
2114's4K RAM's -8 for $85.00
KIT FEATURES:
1. Addressable as four separate 4K
Dli-jplf c
2. ON BOARD BANK SELECT circuitry.
(Cromemco Standard!) Allows up to
512K on line!
3. Uses 2114 (450NS) 4K Static Rams.
4. ON BOARD SELECTABLE WAIT
STATES.
5. Double sided PC Board, with solder
mask and silk screened layout. Gold
plated contact fingers.
6. All address and data lines fully
buffered.
7. Kit includes ALL parts and sockets.
8. PHANTOM is jumpered to PIN 67.
9. LOW POWER: under 2 amps TYPICAL
from the +8 Volt Buss.
10. Blank PC Board can be populated as
any multiple of 4K.
Z-80 PROGRAMMING MANUAL
By Mostek. The major Z-80 second
source. The most detailed explanation
ever on the working of the Z-80 CPU
CHIPS. At least one full page on each of
the 158 Z-80 instructions. A MUST
reference manual for any user of the Z-80.
300 pages. Just off the press.
$12.95
HEAVY DUTY!
Full Wave Bridge
25AMP 50PIV
$1.25
Tantalum Capacitors
1 MFD. .35V. By
Kemet. Axial Lead.
Best Value! 10/$1.
GE 10 AMPTriac
SC146D. House no.
To-220 case. Rated
10amps400PIV.
75c ea. 3/$2.
Digital Research Corporation
w (OF TEXAS! ~
P. O. BOX 401247 • GARLAND, TEXAS 75040 • (214) 271 2461
New! REAL TIME
Computer Clock Chip
N.S. MM5313. Features
BOTH 7 segment and
BCD outputs. 28 Pin
DIP. $4.95 with Data
LS SERIES TTL
74LS00— 33c 74LS74 — 49c
74LS02— 35c 74LS90 — 69c
74LS04— 35c 74L3138— 89c
74LS08— 35c 74LS154— 1.49
74LS10— 33c 74LS175— 1.10
74L.S20 — 33c 74LS367— 75c
74LS73— 49c 74LS368— 85c
TERMS: Orders under S15. add 75c. No COD's. We
accept VISA, MasterCharge and American Express
Cards. Money Back Guarantee on ail items! Texas
Residents add 5% Sales Tax. WE PAY POSTAGE!
• ••••
•••••
■••••
••••••
■■••••
••••••
■•••••
••••••
■•••••
••••••
■•••••
•■••••
■■••*»
•■••••
•••••■
■••••I
•••••«
■••••«
■•••♦•
•••••i
•••••«
•••••€
••••••
■•••••
••••••
••••••
■•••••
••■•••
■•••••
■••»••
•••••§
••■•••
■••••€
•••••t
•••••I
■••••I
•••••«
•••••i
•••••I
•••••<
•••••I
■••••»
■••••«
•••••«
•••♦•I
■••••i
•••••I
•••••*
■•••••
••••••
••••••
•■••••
■•••••
■•••••
•••••■
••••••
■ •••#
•••••
• ••••
•••••
•••••
••••f
-•••I
• •••«
••••j
•••••I
•••••I
•••••I
•••••I
• *••«
• a *««
■••••i
•••••I
•••••I
•••••«
••••••
••••••
•••••■
••••••
■•••••
■ ••••
••••••
••••••
•••••
■•••••
■■••••
Circle 100 on inquiry card.
BYTE August 1978 187
Circle 297 on inquiry card.
* YOUR BEST BUY IN WIRE WRAP SUPPLIES *
PRECUT WIRE
WHY BUY WIRE ON ROLLS?
PRECUT A STRIPPED WIRE IS:
• FmI - No more cutting & stripping by hand
• Reliable - Good, clean, uniform strip
• Economical - Cheaper than using bulk wire
100 pes of 3" at S 82 • 1'M/tl SO ft roll al S1 99 - **/ft.
100 pes of 6" M 1 06 = M/tt. 100 fr roll at 2 95 ■ 3C/n.
Wire K.I 1 M $6 95 • 2 1/3»/tt.
* 30 Kynar stripped 1" on each end Lengths are overall
Colors Hed.Blue.Green.Yellow.Bleck.Orange.Whne
Wire packaged in plaahc bags Add 254/length for lubes
2 40
260
280
300
1000
4 30/K
4 71/K
5 12/K
5 52/K
3 89/K
4 22/K
4 55/K
4 88/K
94 321 593/K 521'K
98 3 42 6 34/K 5 52'K
102 3 65 6 75/K 5 86/K
1 06 3 85 7 Ifi/K 6 19/K
1 15 4 05 7 57'K 6 52/K
t 20 4 25 7 98/K 6 85/K
1 25 4 45 8 39/K 7 IB'K
1 29 4 65 8 BO/K 7 53/K
4S5
5 05
525
9 21/K 7 84/K
9 62/K BT7/K
1Q03/K 8 50/K
10 44/K B 83/K
Add), inches
WIRE KITS
*] S6.9S =2 $19.95
250 3"
100 4V 250 2V
250 4V 250 6"
250 sw-
100 5" 500 3"
250 5 100 6;'
im 4-
100 6"" 500 3'V
100 5V 100 7
500 4
1 250H Roll Bulk
Chooae One Color
•*
or Assortment
kl
I
SOLDERI.ESS
BREADBOARDS
SK 10 $16.50
INCLUDING:
Over 100 pieces of precut wire
in assorted lengths — free!
Choose 1 color Red, Black, Blue.
Yellow. Green, White, Orange
Or Assorlmenl.
INTERCONNECT CABLES
SINGLE ENDED
2 05
2 24
2 63
3 40
DOUBLE ENDED
2 24
233
2 52
2 45
2 55
2 76
3 17
WIRE WRAP TOOLS
$34.95
With Free Wire Kit 1
($6.95 Value)
HOBBY WRAP
Model BW 630
Batteries & Charger $11.00
WSU 30 Hand Wrap-Unwrap Strip Tool 6.25
WSU 30M, for Modified Wrap 7.25
BT 30 Extra Bit 2.95
WIRE WRAP SOCKETS
1-9 10-24 25-89 100249 260 999 1K-5K
♦
• 8 pin
.35
.33
.31
29
.25
.23
14 pin
.35
.33
.31
.29
.28
.27
" 16 pin
.37
.35
.33
.31
.30
.29
• 18 pin
.60
.55
.45
.43
.40
.37
20 pin
.84
.78
.71
.63
.59
.54
* 22 pin
.90
.85
.82
.78
.70
.60
24 pin
.91
.84
.78
68
.64
.59
25 pin strip
1.25
1 05
.95
.80
.70
.65
28 pin
.95
.89
.84
.80
.76
.74
40 pin
1.60
1.40
1.30
1.20
1.05
.90
Gold 3-Lovel Closed Entry Design.
'End & Side Stackable. Atl prices include Gold.
2 Level Sockets Also Available,
EDGE CARD
CONNECTOR
SALE!
44 Pin
Solder Tail
S1.75
S15/10
100 Pin
Solder Tail
3.50
$30/10
100 Pin
Wire Wrap
3.50
S30/10
All connectors include Gold.
PAGE DIGITAL
ELECTRONICS
Ordering Information:
Orders under $25 and COD's. add $2
aii others, shipped ppd in u.s, via ups 135 E. Chestnut Street 5
For Blue Label (Aio or ist ciass. add $1 Monrovia, California 91 01 6
We accept Visa & Mastercharge
Most orders shipped same day Phone (213) 357-5005
Dealer Inquiries Invited
MICROPROCESSOR
2716TI
22.50
6800
19.50
60SOA with (tela
8.95
29.95
821?
290
8 .15
B214
8.00
8216
2.90
8224
290
18 .27
5.35
8251
9.25
10.00
M pin 25
COP1802CD
19.95
CDP1802D
CDPI861
25.00
12 95
9.95
12.95
18.50
CONNECTORS
44 pin edge 2.00
100 pin edge 4.50
6502
100 pin edge WW 5.25
1702A
3.95
MOS/WEMOHY RAM
N82S23
2.95
2101-1
3.95
NB2S123
3.50
2102-1
1.28
N82S126
3.75
21Q2AL-4
1.60
N82S129
3.75
21F02
1.85
N82S13I
3.75
2104A-4
4.95
N82S136
8.75
4.95
N82S137
8 75
4.95
2706
12.50
2112-2
3.95
DM8577
2.90
2114
8.50
8223
2.90
4116
24.95
P.O. Box 4430X Santa Clara, CA 95054
For will call only: (408) 988-1640
^^ P^For will call only:(4"»» »°8-1b4U
'^^^^k. 2322 Walsh Ave.^
G>uc/t-
^**BK^ ELECTRONICS
, =ri '^B CRYSTALS
• ou 1 UHr i *n ■> ninn mm. i us
25I3B
21L02-]
MM5262
MM5280
MU5320
MMS330
P04I10-3
PD411D-4
P5101
4200A
82S25
91L02A
H00165-5
MM5710O
GIAY38500-1
MCM6571A
9368
INTERFACE
8T25
8T26
8128
8T97
8198
8095
8096
8097
40
3.00
9.95
5.94
6.95
450
9.95
9.95
3.50
3.20
1.69
2.75
1 MHt 4.50 2.0100 MH! 1.95
2 MHI 4.50 2.097152 MHz 4.50
4 MHz 4.25 2.4576 MHz 4.50
5 Mill 4.25 3.2768 MHz 4.50
10 MHz 4.25 5.0688 MHz 4 50
18 MHz 3.90 5 185 MHz 4.50
20 MHz 3.90 5.7143 MHz 4.50
32 MHz 3.90 6.5536 MHz 4.50
32768 Hz 4.00 14.31818 MHz 4.25
1.8432 MHz 4.50 18.432 MHz 4.50
3.5795MHZ1.20 22.1184MHz 4,50
60 Hz Cryital Time Bate Kit J 4.40
30 MHz Frequency Coupler Kll $47.75
Premier Kit lo 350 MHz
S19.B5
COMPUTER BOARD KITS
8K RAM Board Kit S134 95
4KEPR0MKII 114.95
1/0 Board Kit 44 50
Extender Board w'connedor 12.50
Video Interlace board kit 125.00
I6K EPR0M board kit w/0 PROMS 74.50
16K Sialic RAM boaid kit 395.00
North Star Floppy Disk Kll S665.O0
Additional Orive Kit 415 00
Paratronlci 100A Logic
Analyzer Kll S199.D0
Model II) Trigger Expander Kll 5229 00
Model 150 Bua Grabber Kit $369.00
New Cosmac Super "ELF"
RCA CMOS expandable to 64K micfocomputeT
w/HEX keypad input and video output tor graphics.
Just turn on and start loading your program using
the resident monitor on ROM. Pushbutton selec-
tion of all four CPU modes. LEO indicators of
current CPU mode and tour CPU states. Single
step op. for program debug. Built in pwr. supply,
256 Bytes of RAM. audio amp. & spkr. Detailed
assy. man. w/PC board & all parts fully socketed.
Comp. Kit S106.95. High address display option
6.9S; Low address display option 9.95: Custom
hardwood cab.; drilled front panel 19.75; Nicad
Battery Backup Kit w/all parts 4.95; Fully wired &
tested in cabinet 151.70; 1802 software club.
10-12 pg. monthly publication 12.00 peryr.
Auto Clock KM $15.95
DC clock with 4-. 50" displays. Uses National
MA-1012 module with alarm option. Includes
light dimmer, crystal timebase PC boards.
Fully regulated, comp. instructs. Add $3.95
for beautiful dark gray case. Best value any-
where.
4K Elf Expansion Board Kit with Cassette l/F $79.95
Available on board options: 1 K super ROM monitor J19.95. Parallel I/O port J7.95. RS232 l/F $3.50.
TTY 20 ma l/F $1.95. S-100 Memory l/F $4,50.
Tiny Basic for ANY 1802 System
m ROM Monitor \um Su " w E » ° mers ,ake 30% ° ,, •
Object code listing or
paper tape with manual $5.50
7B IC Update Master Manual
1978 IC Update Master Manual $30.00
Complete IC data selector 2175 pg. Master ref-
erence guide. Over 42,000 cross references.
Free update service through 1978. Domestic
postage $3.50. Foreign $6.00. Final 1977
Master closeout $15.00
Video Modulator Kit $8.95
Convert your TV set into a high quality monitor
without affecting normal usage. Complete kit
with full instructions.
RCA CosmacVIP Kit $275.00
Video computer with games and graphics.
Sinclair Vk Digit Multimeter $59.95
Batt. oper. imV and ,1NA resolution. Resis-
tance to 20 meg. 1% accuracy. Small, portable,
completely assem. in case. 1 yr. guarantee.
PROM Eraser
Ultraviolet, assembled
$49.95
TERMS S5.00 min. order U.S. Funds. Calif residents add 6% lax. BankAmericard and Master Charge accepted Shipping charges will be added on charge cards
FREE; Send (or your copy of our NEW 1978 QUEST CATALOG! Include 28c stamp.
188 BYTE August 1978
Circle 307 on inquiry card.
COMPUTER INTERFACES & PERIPHERALS
For free catalog including parts lists and schematics, send a self-addressed stamped envelope.
APPLE II SERIAL I/O
INTERFACE *
Part no. 2
Baud rate is continuously adjustable
from to 30,000 • Plugs into any periph-
eral connector • Low current drain. RS-
232 input and output • On board switch
selectable 5 to 8 data bits, 1 or 2 stop
bits, and parity or no parity either odd or
even • Jumper selectable address •
SOFTWARE • Input and Output routine
from monitor or BASIC to teletype or other serial printer.
• Program for using an Apple II for a video or an intelli-
gent terminal. Also can output in correspondence code
to interface with some selectrics. Board only — $1 5.00;
with parts — $42.00; assembled and tested — $62.00.
MODEM
Part no. 109
• Type 103 • Full or half
duplex • Works up to 300
baud • Originate or Ans-
wer • No coils, only low
cost components • TTL
input and output-serial •
Connect 8 ohm speaker
and crystal mic. directly to board
demodulator • Requires +5 volts
with parts $27.50
Uses XR FSK
> Board $7.60;
DC POWER SUPPLY
Part no. 6085
• Board supplies a regulated +5 volts
at 3 amps., +12, -12, and -5 volts at
1 amp. • Power required is 8 volts AC
at 3 amps., and 24 volts AC C.T. at 1 .5
amps. • Board only $12.50; with
parts excluding transformers $42.50
TAPE INTERFACE *
Part no. 111
• Play and record Kansas
City Standard tapes •
Converts a low cost tape
recorder to a digital re-
corder • Works up to 1 200
baud • Digital in and out
are TTL-serial • Output of
board connects to mic. in
of recorder • Earphone of
recorder connects to input on board • No coils •
Requires +5 volts, low power drain • Board $7.60;
with parts $27.50
TV. TYPEWRITER
Part no. 106
• Stand alone TVT
• 32 char/line. 16
lines, modifications
for 64 char/line in-
cluded • Parallel
ASCII (TTL) input •
Video output • 1K
on board memory •
Output for compu-
ter controlled cur-
ser • Auto scroll •
Non-destructive curser • Curser inputs: up, down, left,
right, home, EOL, EOS • Scroll up, down • Requires +5
volts at 1.5 amps, and -12 volts at 30 mA • All 7400, TTL
chips • Char. gen. 2513 • Upper case only • Board only
$39.00; with parts $145.00
TIDMA
*
Part no. 112
• Tape Interface Direct Memory Access • Record
and play programs without bootstrap loader (no
prom) has FSK encoder/ decoder for direct con-
nections to low cost recorder at 1200 baud rate,
and direct connections for inputs and outputs to a
digital recorder at any baud rate. • S-1 00 bus com-
patible • Board only $35.00; with parts $110.00
UART & BAUD RATE
GENERATOR*
Part no. 101
• Converts serial to parallel
and parallel to serial • Low
cost on board baud rate
generator • Baud rates: 110,
150, 300, 600. 1200, and
2400 • Low power drain +5
volts and -12 volts required
• TTL compatible • All characters contain a start bit, 5 to
8 data bits, 1 or 2 stop bits, and either odd or even parity.
• All connections go to a 44 pin gold plated edge connec-
tor • Board only $12.00; with parts $35.00 with connector
add $3.00
8K STATIC
RAM
Part no. 300
• 8K Altair bus memory
Uses 21 02 Static memory chips • Mem-
ory protect • Gold contacts • Wait states • On
board regulator • S-1 00 bus compatible • Vector
input option • TRI state buffered • Board only
$22.50; with parts $160.00
RF MODULATOR
Part no. 107
• Converts video to AM modu-
lated RF, Channels 2 or 3. So
powerful almost no tuning is re-
quired. On board regulated
power supply makes this ex-
tremely stable. Rated very
highly in Doctor Dobbs' Journal. Recommended
by Apple. • Power required is 12 volts AC C.T., or
+5 volts DC • Board $7.60; with parts $13.50
RS232/TTY
INTERFACE
Part no. 600
• Converts RS-232 to 20mA
current loop, and 20mA current
loop to RS-232 • Two separate
circuits • Requires +12 and -12
volts • Board only $4.50, with
parts $7.00
■ ' ■ ©
RS 232/TTL*
INTERFACE
Part no. 232
• Converts TTL to RS-232, *
and converts RS-232 to
TTL • Two separate circuits *
• Requires -1 2 and +1 2 volts
• All connections go to a 10 pin gold plated edge
connector • Board only $4.50; with parts $7.00
with connector add $2.00
ELECTRONIC SYSTEMS
Dept. B, RQ Box 21638, San Jose, CA. USA 95157
Mention part number and description. For parts kits add "A" to pari number. In USA, shipping paid for orders accompanied by check, money order, or
Master Charge, BankAmericard, or VISA number, expiration date and signature. Shipping charges added to C.O.D. orders. California residents add 6.5%
for tax. Outside USA add 1 0% for air mail postage, no C.O.D.'s. Checks and money orders must be payable in US dollars. Parts kits include sockets for all
ICs, components, and circuit board. Documentation is included with all products. All items are in stock, and will be shipped the day order is received via
first class mail. Prices are in US dollars. No open accounts. To eliminate tariff in Canada boxes are marked "Computer Parts." Dealer inquiries invited.
24 Hour Order Line: (408) 226-4064 * Circuits designed by John Bell
Circle 125 on inquiry card.
BYTE August 1978 189
What's New?
Glitch Grabber Reduces Noise, Glitches, Jitter on S-100 Bus
A board interconnection device that
reduces noise, glitches and jitter on the
S-100 microcomputer bus has been
announced by Extensys Corp, 380
Bernardo Av, Mountain View CA 94040.
Called the Extensys Glitch Grabber,
the board helps to clean signals on the
S-100 bus. The device provides glitch-
free signals by applying analog tech-
niques from transmission line analysis.
It plugs into any open slot on the S-100
bus and features a proprietary self-regu-
lating transistor network that controls
voltages. The electronics are activated
only when the glitch is there, to mini-
mize any effects on S-100 bus signals.
The price is $79.50."
Circle 547 on inquiry card.
Attention Chess Nuts
The MACC-1 is a new companion to
the Chess Challenger and is designed for
advanced players. The unit will never
play the same game twice and will not
allow illegal moves including accidental
moving into check. It does allow castling
and pawn capture en passant. The pro-
gramming concentrates heavily on im-
proved end of game tactics and will not
miss checkmate situations. Multiple
levels of difficulty can be selected or
changed at any time throughout the
game. Chess problems may be set up
quickly by telling the computer what
pieces should be positioned, where they
are to be placed, and the game starts
from there. Any previous Chess Challen-
ger may be upgraded to the MACC-1.
This new unit is priced at $250. Contact
Fidelity Electronics Ltd, 5245 Diversey
Av, Chicago I L 60639."
Circle 548 on inquiry card.
SERVICE!!!
TIRED OF WAITING 2 MONTHS?
National
CAN HELM!
Your equipment is ordinarily on la way
home within 5 days of Its arrival.
SPECIALISTS IN SERVICING OF
All S 100 Bus Micro Processors & Peripherals. TTL Cir-
cuits. "Horn* Brew Projects", other Micro Processors.
SALES
NDD-380 S-100 Compulor $325
We sell computer equipment from mijor manufecturers
at the lowest prices in N.Y.C.
We also sell previously owned microcomputers and peri
pheralt at super low prices.
We ere OPEN 7 DAYS A WEEK tor the
the hobbyist and small businessman.
MONFRI 5pm 7pm, SAT tOem-Spm. SUN 10am-2pm
NATIONAL DIGITAL DIAGNOSTICS
80 5th AVENUE. RM. 1206
NEW YORK, N.Y. 10011
(212) 929 1694
, Circle 273 oh inquiry card.
■
VeVe!.
LEAR SIEGLER
Xttv
•X*X
II
ADM-3A CRT
TERMINAL MOS-
■
■eOT*!*'
TEK Z-80 DEV.
SYSTEM; EMU-
LATOR AND
FLOPPY DISC.
m
V •"•"•••
BEST OFFER.
: : x : x :
:'xW
'.•'.'VS.'
♦x*:*x*:*:*:*:::*:*.:.:.'
isss&mAsiAHaseet
xWx
,V#%Vi
Inquiries are to be directed to:
AMERICAN DIGITAL
DEVELOPMENT, INC.
2483 Devon Avenue
Elk Grove Village. Illinois 60007
(312) 860-2980
COMPUTER
MART OF
MASSACHUSETTS
Featuring a wide variety of
program development systems.
XITAN[TDL] DISK BASIC $159
Now available for Z-80 based
systems running CP/M.
Ask us about the new XITAN
GENERAL.
COMPUTER MART OF MASSACHSITTS
1097 Lexington SI. Waltham, Mi. 02154
[617] 899-4540
Circle 74 on inquiry card.
PROGRAMMERS
Ground floor opportunities exist for
self-starters. System Software design
for a 64 bit main frame computer
based on the architecture for the
80's. Current openings exist in:
• Language Translation
• Operating System
• System Verification
Call Mr. Jan Grondstra collect at
(603) 882-1580 or, if you prefer,
send your resume to his attention at
Functional Automation, Inc.
118 Northeastern Blvd.
Nashua, NH 03060
FUNCTIONAL
AUTOMATION
LSI-HAND 6800
64KB MEMORIES
CI-1103 — 8K words to 32K words in a
single option slot. Plugs directly into LSI
11, LSI 11/2, H11&PDP 1103. Address-
able in 2K increments up to 1 28K. BK x 16
$390.00. 32K x 16 $995.00 qry. one.
CI-6800 — 16KB to 64KB on a single
board. Plugs directly into Motorola's
EXORcisor and compatible with the eval-
uation modules. Addressable in 4K in-
crements up to 64K. 16KB $390.00.
64KB $995.00.
CI-8080 — 16KB to 64KB on a single
board. Plugs directly into Intel's MDS
800 and SBC 80/10. Addressable in 2K
increments up to 64K. 16KB $390.00.
64KB $995.00.
— ^ Tested and burned-in. Full year warranty.
■i Chrislin Industries, Inc.
^Zs Computer Products Division
31312 Via Colinas • Westiako Village. CA 91361
^^^^^^^^^1^91^254^^^^^^^^
Circle 51 on inquiry card.
mum cftiNrri
by Centronics
"$"3^>-
S339
Have Hard Copy on your system at this
amazing low price with all these features:
• 150 lines per minute regardless of line
length
• 80 characters per line
• 96 character set - upper and lower
case
• High reliability - only 4 moving parts
• Lightweight - 10 lbs, desk-top size
Model PI - parallel interface, TTL - $339
Model SI - serial RS232C, to 9600 baud
-$069
NJ Residents add 5% tax.
Send money order or certified check to:
Kalin Associates
65 Riverview Terrace
Belle Mead, NJ 08502 (201 ) 874-4070
Quantity discounts available.
Circle 8 on inquiry card.
Circle 142 on inquiry card.
Circle 203 on inquiry card.
^rp, F w/ o™i A "Smart" VIDEO BOARD
1 he LW-2001 KIT At A "Dumb" Price!
^jF A VIDEO BOARD + A MEMORY BOARD + AN I/O BOARD - ALL IN ONE!
■ STATE OF THE ART TECHNOLOGY USING DEDICATED MICROPROCESSOR I.C. (jfe 1 Q Q Q ^
■ NUMBER OF I.C.s REDUCED BY 50% FOR HIGHER RELIABILITY ■ MASTER PIECE <tP J- -7 -7 • 37 «J
OF ENGINEERING ■ FULLY SOFTWARE CONTROLLED Priced at ONLY Basic Software Included
SPECIAL FEATURES: ■ Programmable no. of scan lines OPTIONS:
■ S-100 bus compatible ■ Underline blinking cursor Sockets $10.00
■ Parallel keyboard port ■ Cursor controls: up, down, left, 2K Static Memory
■ On board 4K screen memory right, home, carriage return (with Sockets) $45.00
(optional)* relocatable to main ■ Composite video 4K Static Memory
computer memory *Min. 2K required for operation of this board. (with Sockets) $90.00
■ Text editing capabilities (soft- DISPLAY FEATURES- Complete unit, assembled
ware optional) — — ■ — — — — ' and tested with
.Scrolling: up and down through " ™ ( £*3fi£KS*& /*~ •■•"•■ «35.00
video memory numeric, controls) Basic software on ROM . $20.00
■ Blinking characters a 34 or 32 characters per line Text editor on ROM .... $75.00
■ Reversed video (jumper selectable)
■ Provision for on board ROM ■ 32 or 16 lines
■ CRT and video controls fully jumper selectable)
programmable (European TV) ■ Screen capacity 2048 or 512 DEALER
' ^dofmaTrix " 1 INQUIRIES WELCOMED
8080 SUPPORT
8212 $3.00
8214 7.95
8216 3.50
8228 5.95
8251 7.95
8555 8.50
1/4W RESISTOR
10 Ohm- 1.5m
$1.75/100
of one value
Pole lOPos.
ROTARY
SWITCH
3 for $1.00
1 Pole 8 Pos.
T05 Miniature
Rotary Switch
3 for $1.00
MINIATURE
Slide Switch
DPDT
$.15; 10/$ 1.00
Push Button
Momentary
Switch
3 for $1.00
8080 A
CPU
$7.75
RAM-2II4
1Kx4 450ns
$8.00
RIBBON CABLE
32 Conductor
26 AWG - $.60/Foot
HEXADECIMAL
LABEL KEYBOARD
Matrix coded output
Interfaces with 74C922
for binary code
Zero bounce
Est. life: 100 million
Remove back to stick on
#ONLY
ASCII 3rd GENERATION
KEYBOARD KIT »«*.00
SHIPPING: Keyboard and Video Board: $3.50; others: $1.25
California residents add 6% sales tax
ELECTRONICS WAREHOUSE Inc.
1603 AVIATION BLVD.
REDONDO BEACH, CA. 90278
TEL. (213)376-8005
WRITE FOR FREE CATALOG
Minimum Order: $10
it
TTL Logic Circuits
Power: +5V 275mA
Upper and Lower Case
Full ASCII Set (Alpha
Numeric, Symbols,
Control)
7 or 8 Bits Parallel Data
Optional Serial Output
Selectable Positive or
Negative Strobe, and
Strobe Pulse Width
'N' Key Roll-Over
Fully Debounced
Carriage Return Key
Repeat Function Key
Shift Lock, 2 Shift Keys
4 User Defineable Keys
P.C. Board Size:
17-3/16" x 5"
OPTIONS:
■ Metal Enclosure
Painted IBM Blue
and White)
■ 18 Pin Edge Con.
$25.00
$2.00
■ I.C. Sockets
S4.00
■ Serial Output (Shift
Register)
■ Upper Case Lock
Switch for Capital
Letters and
Numbers
$2.00
$2.00
KIT INCLUDES: Keyboard,
P.C. Board, all required com-
ponents & assembly manual.
NOTE: If you have this 63
Key Teletype Keyboard you
can buy the Kit without it
for only $44.95.
Circle 130 on inquiry card.
BYTE August 1978 191
What's New?
PERIPHERALS
Complete Monolithic 10 Bit Analog
to Digital Converter
DMA Interface for LSI-1 1 and
LSI-11/2
This general purpose DMA interface
card is now available from Computer
Technology, 6043 Lawton Av, Oakland
CA 94618. The card features the follow-
ing: dual height card (8.5 by 5 inches
or 22 by 13 cm); bootstrap facility pro-
vided for the user's programmable read
only memory; ease of interfacing to the
user's device by means of a buffered bi-
directional data bus; allows direct pro-
grammed 10 with five 16 bit read and
write registers in the user's device;
handles byte or word transfers at rates
up to 400 K transfers per second;
handles extended addressing up to 128 K
words; burst mode capability; useful
with floppy or hard disk controllers, line
printers, interprocessor communication,
data acquisition and many other high
performance applications. Priced at $495
from Computer Technology."
Circle 584 on inquiry card.
ASCII Keyboard in Kit or Assembled
The Model 756 ASCII keyboard
provides encoding for all 128 ASCII
characters and control functions. Uti-
lizing KBM Series keyswitches and low
power MOS encoder circuitry, Model
756 is designed to bridge the gap be-
tween stripped down basic keyboards
and custom models. Accessories include
a numeric pad, custom cables and
connectors. The new 702 enclosure
features all steel construction and is
supplied in a wrinkle finish to match
modern hardware design. The interface
allows user selection of parity, positive
or negative logic data and strobe out-
puts, alpha lock operation and both
DC level and pulse strobe signals. A
latching shift lock key is included and
all outputs are TTL DTL MOS com-
patible. The 756 carries a 90 day war-
ranty. The price for the Model 756 kit
is $64.95. The assembled and tested
model retails for $75.95. The matching
enclosure, Model 702, is $29.95. Contact
George Risk Industries Inc, GRI Plaza,
Kimball NB 69145."
Circle 585 on inquiry card.
I i»M(Miin
This complete, 10 bit monolithic
analog to digital converter combines
linear and digital circuitry on a single
integrated circuit chip. The AD571
is produced using the integrated-
injection logic (I^L) technique which
allows very high circuit densities to be
fabricated on a single chip. The AD571
is also the first monolithic analog to
digital converter to be laser wafer
trimmed. The converter uses the suc-
cessive approximation technique and
includes a DAC, voltage reference, clock,
comparator, successive approximation
register and output buffer on a 120 by
150 mil (30 mm by 38 mm) chip. The
device executes a complete conversion
to 10 bit accuracy ±1/2 Isb in 25 /js
over the specified temperature range.
The AD571 is available in three versions.
For fully guaranteed 10 bit performance
at 25 ' the least expensive is the J
version. The K version provides 10 bit
accuracy over the commerical temper-
ature range of th.ru 70 °C. If you need
a _ 55 to +125°C temperature range, the
S version is your choice. AD571 is
priced in 100s at $24, $35 and $60 for
the J, K and S respectively. Contact
Analog Devices Semiconductor, 829
Woburn St, Wilmington MA 01887."
Circle 587 on inquiry card.
Video Terminal Board for Intel
and National Computers
The Datacube VT 103 Video Ter-
minal Board interfaces directly to the
system bus of the Intel SBC 80 Series
and National BLC 80 Series. The board
provides a 96 character ASCII subset
in seven by nine font in a 64 character
by 16 line format as a video signal to
drive an external monitor. The board is
addressed as an IO device and the device
code programming is switch selectable.
The unit provides direct cursor address-
ing and 11 other cursor control func-
tions. The Datacube VT 103 has an
input port for an optional external
keyboard. Use of the keyboard can re-
place a Teletype or other terminals in
many applications. Inputs for a strobe
and seven data lines are provided at a
26 pin PC edge connector along with
a +5 and -12 V from the system bus for
keyboard power. The composite video
can drive a 75 ohm coaxial cable with
a 1 .4 V peak to peak signal and meets
RS420 standards. The board sells for
$275 in lots of 100 and can be obtained
from Datacube/SMK-1, 670 Main St,
Reading MA 01867."
Circle 586 on inquiry card.
Where Do New Product Items
Come From?
The information printed in the
new products pages of BYTE is
obtained from "new product" or
"press release" copy sent by the
promoters of new products. If in
our judgment the neat new whiz-
bang gizmo or save the world
software package is of interest
to the personal computing experi-
menters and homebrewers who
read BYTE, we print the informa-
tion in some form. We openly
solicit such information from
manufacturers and suppliers to
this marketplace. The information
is printed more or less as a first in
first out queue, subject to oc-
casional priority modifications.
192 Auguit 1978 ©BYTE Publications Inc
DIODES/ZENERS
SOCKETS/BRIDGES
TRANSISTORS. LEDS, etc.
1N914
100v
10mA
8-pin pcb .20 ww .35
2N2222
NPN (2N2222 Plastic. 10)
.15
1N4O05
600v
1A .08
14-pin pcb .20 ww .40
2N2907
2N3906
PNP
PNP (Plastic - Unmarked)
.15
.10
1N4007
1000v
1A .15
16-pin pcb .20 ww .40
2N3904
NPN (Plastic - Unmarked)
.10
1N4148
75v
10m>
18-pin pcb .25 ww .75
2N3054
NPN
.35
1N4733
5.1v
1 W
Zener .25
22-pin pcb .35 ww .95
2N3055
NPN 15 A 60v
PNP Darlington
Red, Clear, Yellow
.50
1N753A
6.2v
500 mW Zener .25
24-pin pcb .35 ww .95
T1P125
LED Green,
.35
.15
1N758A
10v
.25
28-pin pcb .45 ww 1.25
D.L.747
7 seg 5/8" High com-anode
1.95
1N759A
12v
.25
40-pin pcb .50 ww 1.25
MAN72
7 seg com-anode (Red)
1.25
1N5243
1N5244B
13v
14v
.25
.25
Mo lex pins .01 To-3 Sockets .25
MAN3610
MAN82A
7 seg com-anode (Orange)
7 seg com-anode (Yellow)
1.25
1.25
2 Amp Bridge 100-prv .95
MAN74A
7 seg com-cathode (Red)
1.50
1N5245B
15v
.25
FND359
7 seg com-cathode (Red)
1.25
25 Amp Bridge 200-prv 1.95
CMOS
- T T L -
4000
.15
7400
.10
7473 .25
74176 .85
74H72
.35
74S133
.40
4001
.15
7401
.15
7474 .30
74180 .55
74H101
.75
74S140
.55
4002
.20
7402
.15
7475 .35
74181 2.25
74H103
.55
74S151
.30
4004
3.95
7403
.15
7476 .40
74182 .75
74H106
.95
74S153
.35
4006
.95
7404
.10
7480 .55
74190 1.25
74S157
.75
4007
.20
7405
.25
7481 .75
74191 .95
74 LOO
.25
74S158
.30
4008
.75
7406
.25
7483 .75
74192 .75
74L02
.20
74S194
1.05
4009
.35
7407
.55
7485 .55
74193 .85
74L03
.25
74S257 (8123)
1.05
4010
.35
7408
.15
7486 .25
74194 .95
74L04
.30
4011
.20
7409
.15
7489 1.05
74195 .95
74L10
.20
74LS00
.20
4012
.20
7410
.15
7490 .45
74196 .95
74L20
.35
74LS01
.20
4013
.40
7411
.25
7491 .70
74197 .95
74L30
.45
74LS02
.20
4014
.75
7412
.25
7492 .45
74198 1.45
74L47
1.95
74LS04
.20
4015
.75
7413
.25
7493 .35
74221 1.00
74L51
.45
74LS05
.25
4016
.35
7414
.75
7494 .75
74367 .75
74L55
.65
74LS08
.25
4017
.75
7416
.25
7495 .60
74L72
.45
74LS09
.25
4018
.75
7417
.40
7496 .80
75108A .35
74L73
.40
74LS10
.25
4019
.35
7420
.15
74100 1.15
75491 .50
74L74
.45
74LS11
.25
4020
.85
7426
.25
74107 -25
75492 .50
74L75
.55
74LS20
.20
4021
.75
7427
.25
74121 .35
74L93
.55
74LS21
.25
4022
.75
7430
.15
74122 .55
74L123
.85
74LS22
.25
4023
.20
7432
.20
74123 .35
74H00 .15
74LS32
.25
4024
.75
7437
.20
74125 .45
74H01 -20
74S00
.35
74LS37
.25
4025
.20
7438
.20
74126 .35
74H04 .20
74S02
.35
74LS38
.35
4026
1.95
7440
.20
74132 -75
74H05 .20
74S03
.25
74LS40
.30
4027
.35
7441
1.15
74141 .90
74H08 .35
74S04
.25
74LS42
.65
4028
.75
7442
.45
74150 .85
74H10 .35
74S05
.35
74LS51
.35
4030
.35
7443
.45
74151 .65
74H11 .25
74S08
.35
74LS74
.35
4033
1.50
7444
.45
74153 .75
74H15 .45
74S10
.35
74LS86
.35
4034
2.45
7445
.65
74154 .95
74H20 .25
74S11
.35
74LS90
.55
4035
.75
7446
.70
74156 .70
74H21 .25
74S20
.25
74LS93
.55
4040
.75
7447
.70
74157 .65
74H22 .40
74S40
.20
74LS107
.40
4041
.69
7448
.50
74161 .55
74H30 .20
74S50
.20
74LS123
1.00
4042
.65
7450
.25
74163 .85
74H40 .25
74S51
.25
74LS151
.75
4043
.50
7451
.25
74164 .60
74H50 .25
74S64
.15
74LS153
.75
4044
.65
7453
.20
74165 1.10
74H51 .25
74S74
.35
74LS157
.75
4046
1.25
7454
.25
74166 1.25
74H52 .15
74S112
.60
74LS164
1.00
4049
.45
7460
.40
74175 .80
74H53J .25
74S114
.65
74LS193
.95
4050
.45
7470
.45
74H55 .20
• 74LS367
.75
4066
4069/74 C04
.55
.25
7472
.40
74LS368
.65
4071
.25
MCT2 .95 LINEARS, REGULATORS, etc.
4081
.30
8038 3.95
LM320T5 1.65
LM340K15
1.25
LM723
.40
4082
.30
LM201 .75
LM320T12 1.65
LM340K18
1.25
LM725N
2.50
MC 14409 14.50
LM301 .45
LM320T15 1.65
LM340K24
1.25
LM739
1.50
MC 14419
4.85
LM308 (Mini) .95
LM324N 1.25
78L05
.75
LM741(8-14).25
4511
.95
LM309H .65
LM339 .75
78L12
.75
LM747
1.10
74C151
1.90
LM309K (340K-5i85
7805 (340T5) .95
78L15
.75
LM1307
1.25
LM310 85
LM340T12 .95
LM340T15 .95
78M05
.75
LM1458
.65
9000 SERIE
LM311D(Minn .75
LM373
2.95
LM3900
.50
9301 .85
95H03
1.10
LM318(Mini) 1.75
LM340T18 .95
LM380(8-14pin).95
LM75451
.65
9309 .35
9601
.20
LM320K5(790S}1.65
LM340T24 .95
LM709(8,14pin).25
NE555
.35
9322 .65
9602
.45
LM320K12 1.65
LM340K12 1.25
LM711
.45
NE556
.85
.95
1.25
.95
MICRO'S, RA
E-PRC
74S188 3.00
1702A 4.50
MS, C
>MS
8214
8224
PU'S,
8.95
3.25
INTEGRATED CIRCUITS UNLIMIT
ED
NE565
NE566
NE567
MM5314 3.00
8228
6.00
7889 Clairemont Mesa Boulevard, San Diego, California 92V
MM5316 3.50
2102-1 1.45
8251
8255
8.50
10.50
(714) 278-4394 (Calif. Res.)
SPECIAL
DISCOUNTS
2102L-1 1.75
8T13
1.50
All orders shipped prepaid No minimum
Total Order
Deduct
2114 9.50
8T23
1.50
Open accounts invited COD orders accepted $35 -$99
10%
TR1602B 3.95
TMS4044- 9.95
8T24
8T97
2.00
1.00
Discounts available at OEM Quantities California Residents add 6% Sales Tax *J£° " ^^2„
15%
20%
2107
3-4 4.95
All IC's Prime/Guaranteed. All orders shipped same day received.
3>ou i - q> iuuu
8080 8.95
8212 2.95
2708
Z80F
9.50
10 8.50
24 Hour Toll Free Phone 1-800-854 221 1 American Express / Batik Americarrt / Visa / MasterCharge
Circle 180 on inquiry card.
BYTE August 1978 193
MICROPROCESSOR COMPONENTS
The Incredible
"Pennywhlstle 103'
ELPAC
POWER
SUPPLIES
Completely Assembled
SPECIFICATIONS:
10S-125/210-250 Vic, 47-440 H: Input:
Line Regulation ±0.1%
r0.1%no-load la rated-load
±0.1%p-p,dcto 10MH2
100 megohm dc. 900 Vac
35% raled current
RATINGS PRICE
Load Regulation
Output Ripple and Noise
Input/Output Isolation
Short Circuit Current
PART NO.
WAITS VOLTS AMPS
SOLV15-5 - 15 5 3 $36.95
SOLV15-12 - 15 12 15 36.95
SOLV30-5 30 5 6 59.95
S0LV30-12 30 12 3 ' 59.95
OVP1 over voltage protection tor SOLV30-5.-12 9.95
■S0LV15-5. 12 includes OVP Instalhd
NEW! BULB-ENERGY SAVER
w
Bulb lasts 3 or
mare times longer
Fits Standard Socket
6 watts to 200 watts
BES-1
1.39 ea.
10+
1.20
BULB-ENERGY SAVERS used for years by
major industrial users — now available lor
home or office use Bulb Saws can cut elec-
trical bills by as much it 3*x>
BULB-SAVERS lengthens ligtit life by:
t. Acting as an electrical 'shock absorber".
turns the bulb on Slowly, eliminating the
Thermal shock". Bulb ll(e increases 300 per-
cent.
2. Banishes Current "Surges' Cushions line
voltage surges when other loads cut power
ine.
3. Reduces Energy Consumption
P8085 CPU $29.95
fiOSGA CPU 10.95
8212 8-Bit Input/Output 4.95
8214 Priority Interrupt Control 7.95
8216 Bi -Directional But Driver 4.95
8224 Clock Ganerator/DriVBT 5.95
8228 System Controller/Bus Driver 5.95
8251 Prog. Comm. Interlace 9.95
8255 Prop. Periph. Interface 10.95
CDP1802 CPU
Z80 CPU
2650 MPU
MC6800 MPU
MC6810API 128 x 8 Static Ram
MC6820 Periph. Interface Adapter
MC6821 Periph. Interlace Adapter
MC6830LB 1024x8 Bit ROM
$19.95
24.95
26.50
19.95
5.95
7.96
11.50
14.95
MC6850 Asychronous Comm. Adapter 14.95
tot
1103
2101
Z102
2107/5280
2111
2112
2114
21ML
2114-3
21HL-3
7469
BtOl
8111
8599
21L02
74200
9342)
258
RAM'S
1 Static
x 1 Dynamic
4 Static
x t Static
x 1 Dynamic
4 Static
;4 Static
Static 450ns
6.05
5.95
9 95
MK4027 II
IK4027 (UPD4M) 4
MK4116(UPD416) 1
TMS4044-45NL 4
35
1 Static 450ns Low Power 10 9:
4 Static 300ns 10.95
4 Sialic 300ns Low Power 11.95
4 Static 1.75
< 4 Static 5.S5
<4 Sill:: 6 95
4 Static 3.49
x I Static 1.S5
« t Static 5.95
« 1 SQitC
I Dyna mic "38
mm tt m —
KB
29.95
ROM'S
2513(2140) Character Generator (upper cau)
2513(3021) Chirader Generator (tower case)
2516 Chancier Generator
MM5230N 2048 Bit Read Only Memory
USER MANUALS
1B02M COPI802 Manual
ZOOM 280 Manual
2BS0M 2650 Manual
PROMS
1702A
2048 x 1
famous
5203
2048 x 1
Famous
B2S23
32x8
OpenC
82S115
4096x1
Bipolar
82S123
32x8
Tristate
74S287
1024 x 1
Sialic
2706
8K
EPROM
2716 T.I.
16K
EPROM
2716 Intel
16K
EPROM
6301-1
1024x1
tm -State Bipolar
6330-1
256x1
Open C Bipolar
741B6
512x1
TTl Open Collector
74188
256x1
TTL Open Collector
SHIFT REGISTEHS
MM5013N
1024 BrtAccumutitor Dynamic
MM5016H
500/512 Bit Dynamic
MM5017N
Oust 500/512 Bit Dynamic
J504T
1024 Oyna
M
2518
Hex 32 Btl Static
2519
Hex 40 Btl Static
2522
Ouai 132 Bit Static
2524
512 Dynamic
2525
1024 Dynamic
2527
Dual 256 Bit Stahc
2528
Dual 250 Sialic
2529
Dual 240 Bit Static
2532
Ouad 60 Bit Static
2533
1024 Stati
3341
Frio
74LSG70
4X4 Register
10.95
29.95
59.95
U ART'S
30K BAUO
PART NO.
CRYSTALS '&?-
THE*E FREnHENdf-S nm v sfituK — —
THESE FREQUENCIES ONLV
FREQUENCY CASE
CY1A
CY1.84
CY2A
CY2.01
CY2.50
CY3.27
CY3.57
CY3A
CY4.91
CY7A
CY5.18
CY6.14
CY6.40
CY6.55
CY12A
CY14A
CY19A
CY18.43
CY22A
CY30A
1 O00MH;
I.8432MH!
2.000MH2
2.010MHz
2.500MHz
3.2768MHz
3.579545MHz
4.000MHz
4.916MHz
5.000MHz
5 185MHz
6.144MHz
6.400MHz
6.5536MHz
10.000MHz
14.31818MHz
18.000MHz
18.432MHz
20.000MHz
32.000MHz
HC33
HC33
HC33
HC33
HC33
HC33
HC33
HC18
HC18
HC18
HC18
HC18
HC18
HC18
HC18
HC18
HC18
HC18
HC18
HC18
5.95
5.95
5.95
1.95
4.95
4.95
495
4.95
4.95
4.95
4.95
4.95
4.95
4.95
4.95
4.95
4.95
4.95
4.95
4.95
Assurance values
TRIMMERS
1QMM size trimmers -.394" Ola.
Part No. 1-9 10-24 25-49 100+
TR-11(valve).35 .30 .25 20
100, 50O. IK, 2K. 5K, 10K. 20*. SDK. 100K. 200K. 1 meg
Analyzes any type ot digital system
Checks data rates in excess ot 8
million words per second
• Trouble shoot TTL. CMOS, DTL. RTL.
Sctiottky and MOS families
Displays 16 logic states up to 8 digits wide
• See ones and zeros displayed on your
CRT. octal or hexadecimal format
t Tests circuits under actual operating conditions
Easy to assemble — comes with step-by-step construction
manual which includes 80 pages on logic analyzer operation.
(Model 100A Manual - $4.95)
TRIMPOTS
Single-Turn - 1/2 Watt
Square - Top Adjust - 3/8" Slza
Part No. t-9 10-24 25-49 50-99
63P(value) .99 .89 .80 .70
Resistance Values -50 100. 500. IK 2K. 5K. I0K. 20K. 50K. I00K. ZOQK. 50OK. 1 meg
15 -Turn • 3/4 Watt
Rectangular Side Adjust 3/4" x 1/4" Size
Part No. 1-9 10-24 25-49 50-99
43P(value) 1.35 1.25 1.20 1.15
Resistance Values - SO. 100. 5O0. IK. 2K, SK. I0K. 20K. SOK. 100K. Z0OK, 5O0K, t meg
*Tfcgfr-
1/16 VECTOR BOARD
Pari No
64P44 062XXXP
169P44 062XXXP
64P44 062WE
S4P44 062WE
169P44 0G2WE
169P84 062WE
169P44 062WEC1
17.00 389
6.50 2.07
8.50 256
17,00 5.04
4. S3
8.26
6.12
CONNECTORS
25 Pln-D Submlnlature
D825P(as pictured) PLUG $3.25
DB258 SOCKET 4.95
DB81226-1 Cover lor OB25 P or S 1.75
MOLEX CONNECTOR PINS
M-530-1
$1.95/100 pins
(minimum order)
$16.00/1000 pins
INSTRUMENT/
CLOCK CASE
Injection molded unit.
Complete with red bezel.
\4Vi"x 4- x 1-9/16*.
V $3.49
TELEPHONE
KEYWAHO CMPI
AY-S-9100 $14.95
AY-5-92O0 14.95
AY-S-9500 4 95
AY-5-2376 14.95
HD0165 795
74CB22 995
SPECIAL REQUESTED
19 96
HMOS READ ONLY
MEM04KS
MCM6571 $13 50
MCM6574 13 50
MCM6575 13.50
ITEMS
MISCELLANEOUS
ICM7205
ICM7207
ICM720B 19 95
ICM7209 6 95
] TV BAME CHIP SET 1
1AY-3-85O0-1 ChtoanrJ 2 010 MH2 Crystal $7,951
11C90 $19.95 MK4O240 $17.50
MC3061P 11 95 DS0O26CH 3.75
MC1408L7 4.95 TIL308 10.20
MC1408L8 575 95H90 11.95
LIU 10/ 1 11 S25.00/Stt
MC4016I74416) 7.50
4M33 3 95
PARATRONICS
Logic Analyzer Kit
Model 100A
$229.00/kit
• ■>■■■■• •••• an
$129.95
Kit Only
n»i PBneywMalla 103 Is capaMe ot recording data to and from audio tape without
critical speed requirements tor the recorder and H is able to communicate directly
with another modem and terminal tor telephone "hamming" and communications
lor the deal, in addition, it Is tree ot critical adjustments and is ouih with rjon-predsron.
readily avai la hie pans
Data Tram minion Method frequency -ShiU Keying. lull-duplex (hatl-duplet
selectable).
Mailmam Data Rate 300 Baud.
Oata Formal Asynchronous Serial (relurn lo mark level required
between each character!-.
fUcehra Channel Freqteeclu . . .2025 Hi lor space; 2225 Hi lor mark
Transmit Channel Frequencies ..Switch selectable: Low (normal) ■ 1070 space.
1270 mark High ■ 025 space. 2225 mark
Receive Sensitivity - 4$ dbm aecousttcally coupled.
Transmit Level - 15 dbm nominal. Adjustable Irom -6 dbm
lo-20 dbm
Receive Frequency Tolerance . . .Frequency reference automatically adjusts lo
allow for operation between 1 BOO Hz and 2400 Hi
Digit j I Dale Inlertace EIA RS-232C or 20 mA current loop (receiver Is
optoisolated and non-polar)
Pewer Requirements 120 VAC, single phase. 10 Watts.
Physical All components mount on e single 5" by 9"
printed circuit board. Alt components included.
Repines a VOM, Audio Oscillator. Frequency Counter ana/or Oscilloscope 10 align
the 3 rd Hand
$9.95 each
•Leaves two hands free for
working
* Clamps on edge of bench, table
or work bench
' Position board on angle or tlat
position for soldering or clipping
* Sturdy, aluminum construction
for hobbyist, manufacturer or
school rooms
DIGITAL STOPWATCH
Some applications are
- Troubleshooting microprocessor
address, instruction, and data flow
- Examine contents of ROMS
- Tracing operation of control logic
- Checking counter and shill
register operation
- Monitoring I/O sequences
- Verifying proper system operations
during testing
PARATRONICS TRIGGER EXPANDER - Modal 10
Adds 16 additional bits Provides digital delay and qualification of input c
and 24-bit trigger word . — Connects direct to Model 1 0OA for integrated ui
Model 10 Kit - $229.00
Baseplate — M.95
Model 10 Manual -$4.95
RfT4J;IWS!?K
Model 2800
$99.95
Ccmes with rest
leads, operating manual
ana spam luse
3'A-Olgll Portable OMM
• Overload Protected
• 3 <'■■;;!■ It'! Display
• Baitery or AC operation
■ Aulo Zeroing
• Imv. iVa. 1 ohm resolution
• Overange reading
• 10 meg input impendence
■ DC Accuracy IS typical
Rang.** DC Voltage -0-I00OV
AC Voltage 0-iQOOV
Freq Response 50-400 HZ
0DAC Current 0- 1 00mA
Resistance 0-tOmegohm
Sue 6 4- 1 4 4" a T
Accessorial:
AC Adapter BC-28 $9.00
Rechargeable
Batteries BP-26 20.00
Carrying Case LC-2B 7.60
100 MHz 8-Digit Counter
■ MHi.100 Mm Range , Four power souces, I.e.
• .6" LED Display baneries, 110 or2Z0Vw.tTi
■ Crysui-eontroBed irmebase charger 12V wllh auto
• Fully Automatic liQhtctr adapter and external
■ Portable - completely 7.2-I0V power supply
.Sr.T?,, 3 r "a*"" $134.95
I5.63 -
ACCESSORIES FOR MAX 100:
Mobile Chargor Ellmlnner
uM power Irom r.ir battery Modal 100 — CLA 1
Cltarnsf/Ellminator
UN 110 V AC Mod.l 100 - CAI |
63-Key Unencoded I KEYBOARDS | Hexadecimal Encoder
This is a 63-key, terminal keyboard newly
manufactured by a large computer manufac-
turer. It Is unencoded with SPST keys, unat-
tached to any kind of PC board. A very solid
molded plastic 13x4" base suits most applica-
tion. IN stock $29.95/each
19-key pad Includes 1-10 keys,
ABCDEF and 2 optional keys and a
shift key. $10.95/each
$6.00 Minimum Older - U.S. Fundi Only
California Residents - Add 6% Salei Tax
Spec Shoots - 2U
1978A Catalog Available-Sent! 35ii stamp
PHONE
ORDERS
WELCOME
. 4..uia>> X JAMU r!.K-n>.ONIC« * CJofcjnili
(415)592-8097
MAIL ORDER ELECTRONICS - WORLDWIDE
1021 HOWARD AVENUE. SAN CARLOS, CA 94070
Advertised Prices Good Thru August
■ Bright 6 Digit LED Display
• Times to 59 minutes 59 59 seconds
• Crystal Controlled Time Base
• Three Stopwatches in One
Times Single Event — Sunt S TiytO'
■ Site 4 5 *2>5 i 90 (4 1) ounces)
• Uses 3 Penlite Cells
Kit — S39.95
Assembled — $49.95
Heavy Duty Carry Case 55.95
Slop Watch Chip Only (720S) $19.95
3 y 2 DIGIT DPM KIT
ffc
New Bipolar Unit • Auto Polarity
• Auto Zeroing • Low Power
• .5" LED . Single IC Unit
Model KB500 DPM Kit $49.00
Model KB503 5V Power Kit $17.50
JE700 CLOCK
the j[ 71)0 >s 3 low cost digital ctort Dui
is a very high quality unit The unii Ira
lures a simulated Wriinut cast with ■.-■
mens.onsoi6 ■.?•.• il K utilizes a
MAfi72hignorightness readout and i he
MMS3M dock chip
115 VAC
KIT ONLY
$16.95
JE803 PROBE
The logic Piobe i| a unit wnicn a tor inr most part
■ndes pensile rn irouOie shoot mg iogn families
TTL OTl RTL CMOS it derives Ihe po*ei it
needs to operale d»eoiy otr ot me cucuii unde'
lesi dra*mg a scanl 10 mA mai li uses a MAN3
readout lo mOtcate any ot me tomwrng stales Ot
these symtjols tHi 1 iLOWi o iPULSE) P The
Prooe can deieci high Irequency pulses to J5 Mhi
it can i Be used at MOS levels o< cucjil damage
will result
$9.95 Per Kit
Drinted circuit board
PL 5V 1A Supply
This is i slandaid TTL POwei supply usng the well known
LM309K regulator iC to piovkde a solid i AMPof cuirentat i
volts We rry to nuke things easy tor you By providing
everything you need in one package including the harOware
..or* JE225 S9.gs per Kit
PROTO BOARDS
PROTO BOARD 6
$15.95
(6' long X 4" wide)
4.5" X 6"
5.6" X 4.5"
7" X4.5"
9" x 6"
9.5" X 8"
9.75 x 6'/i x 2V<
PB100
PB101
PB102
PB103
PB104
PB203
PB203A - 9.75 x 6Vi
(mdudes power supcjyl
$ 19.95
29.95
39.95
59.95
79.95
80.00
iiiiiiinmjii
f
muiMUU PROTO CUPS
-'jg' L Um W.50
ttitlliiiiii
I
16 PIN
24 PIN
40 PIN
4.75
8.50
13.75>
194 BYTE August 1978
Circle 200 on inquiry card.
5N7400N
SN7401N
SN7402N
SN7403N
SN7404N
SN740SN
SN7406N
SN7407N
SN740SH
SN7409N
SN74I0N
SN7411N
SN7412N
SN7413N
SN7414N
SN74I6N
SN7417N
SN7420N
SN7421N
SN7422N
SN7423N
5N74J5N
SN7426N
SN7427N
SN7429N
SN7430N
SN7432N
SN7437N
SM7438N
SN7439N
SN744QN
SN744IN
SN7442N
SN7443N
SN7444N
SH7445N
SN7446N
SN7447I*
SN744SN
SN74SON
SN74SIN
SN7453N
SN74S4N
SN7459A
SN7460N
SN7470N
CQ4000
C0400I
CD4Q02
co4ooe
CO-iW?
CD4009
CD-iOlO
CD40I 1
CLM012
CO40I3
CD40I4
CD4Q15
CD4016
C04017
C04QIB
C04019
CD4020
CD40?t
CD4022
CD4023
CDJ024
CQ4025
CD4026
C34Q?;
■Tclfr
7KQ2
T4C0J
,-jcob
■1C1Q
74C11
TJC20
74C30
74C42
rjc-m
7JC73
iM3UUH
LM30IH
LM.101CN
LM302H
LM304K
IM305H
LM307CN H
LM3QBH
LM308CN
LM309M
LM3.09K
LM310CN
LM31IM
LM3I1N
IM3I7K
LM318CN
LM319N
LM32QK.5
LM320X,'5 2
LM320KI7
LM320KIS
LM320K 18
LM320K-24
LM320T 5
LM320T-5 2
LM3201-8
LM320T-I?
LM320M5
LM320T-18
LM320T-24
LM323K-5
LM324N
LM339N
LM340K-S
LM340K-6
LM340KB
LM340K1?
LM340K-15
LM340K It
LM340K-24
LM340I-S
IMJ4QI 6
7400 TTL
^SB
SN7472N
SN7473N
SN7474N
SN7475N'
SN7476N
SN7479N
SN74B0N
SN7432N
SN7463N
SN7485N
SN7486N
SN7489N
SN7490N
SN749IN
SN7492N
SN7493N
SN7494N
SN7495N
SN7496N
SN7497N
SN74I0ON
SN74I07N
SN74109N
SN741I6N
SN7412IN
SN74122N
SN74123N
SN7412SN
SN7412BN
SN74132N
SN74138N
SN74141N
SN74142N
SN74143N
SN74144N
SN74U5N
SN74147N
SN74I48N
5N74IMN
SN741S1N
SN74153N
SN74154N
SN741S5N
5N74156N
SN74157N
C/MOS
C04028
CD4029
C04030
CD4035
CD4040
CD4041
C04Q42
CD4Q43
CD4D44
CD4046
C04(M7
CO-KJJa
C04049
CQ4Q50
CD4051
C04053
C040S6
CDJ059
CD4Q60
CD4066
C04068
74C00
74C89
74C9Q
74C93
74C9S
74C107
74C151
74CI54
/4C157
74CI60
■■iCIbl
LINEAR
LM140T-B ! 25
LM34QT-12 1 25
LM340M5 ■ 25
LM340M6 1 25
LM34QT-24 125
LM350N I 00
LM351CN 65
IM370N 1 IS
LM373N
LM377N
LM38QN
LM3B0CN
IM381N
325
J 00
t.zs
LM382N
NE50IN
NE510A
NE529A
NE531H
NES36I
NE540L
NE5S0N
NE555V
NE556
NE560B
NE561B
NE562B
NES65H
NE565N
NE566CN
NE567H
NE567V
NE570
LM7Q3CNH
LM709H
LM709N
LM710N
LM711N
IM723H
LM723N
1 79
_
SN74160N
SN74161N
SN74162N
SN74163N
SN74164N
SN74165N
SN74I66N
SN74167N
SN74170N
SN74I72M
SN74173N
SN74J74N
SN74175N
SN74176N
SN74177N
SN74179N
SN74180N
SN74I81N
SN74182N
SN74184N
SN74185N
SN74186N
SN74188N
SN74190N
SN74191N
SN74192N
SN74193N
SN74194N
SN74I95N
SN74I96N
SN74I97N
SN74198N
5N74199N
SN7420W
SN74251N
SN74279N
SN74283N
SN74284N
SN74285N
SN74365N
GH7436GN
SN74367N
SN74368N
SN74390N
SN74393N
~73TiSr
7IC164
74CI73
71C192
74CI93
7-1C195
TJC922
TJC923
74C925
74C926
80C95
MC97
LM733N
LM739^
LM74ICH
LM74ICN
CD4070 55
CD407I 23
CQ4072 49
CD4076 1 39
C04081 23
CD4082 23
C04093 99
CD4(B8 2 49
MCI4409 '4 95
MCI4410 14 95
MC14411 14 95
MC14419 4 95
MCM433 19 95
MCI4506 75
MC14507 99
MCM562 14 SO
MC14583 3 50
CD4508 3 95
CDJ510 1 39
C0-I5I1 1 29
CD45I5 2 95
CD4S18 1 29
C04520 1 29
C04566 2 25
260
3 49
2 75
2 75
35
IM74! UN 39
LM747H 79
LM747N 79
LM748H 39
LM748N 39
LM1303N 90
LMI304N 1 19
LM1305N 1 40
IM1307N B5
LMI310N 2 95
LMI3S1N 1 85
LM1414N 1 75
LMI458CNH S9
MC148B 1 95
MCI 489 1 95
LM1496N 95
LM 1556V 1 75
MCI74ISCP 3 00
LM2901N 2 95
LM3053 1 50
LM306SN 69
LM3900N(3401| 49
LM3905N B9
LM3909 1.25
MCS55BV 100
LM7525N 90
LM7S34N 75
B038B 495
LM 75450 49
7545 1CN 39
75452CN 39
75453CN 39
75454CN 39
7S491CN 79
7S492CN .69
75494CN
RC4151
HC4194
RC4195
.89
595
74LS00
74LS0I
74LSO?
74LS03
74LS04
74LS05
74LS0B
74LS09
74LS10
74LS13
74LS14
74LS15
74LS20
74LS21
74LS22
74LS26
74LS27
74LS2S
74LS30
74LS32
74LS37
74LS40
74LS42
.74LS47
74LS00 TTL
74LS5t
74LS54
74LS55
74LS73
74LS74
74LS75
74LS76
74LSB3
74LS85
74LSS6
74LS90
74LS92
74LS93
74LS95
74LS06
74LS107
74LS109
74LS112
74LS123
74LS132
74LS136
74IS138
74LSI39
74LS151
74LS155
74LSI57
74LS160
74LS161
74LS162
74LS163
74LS164
mam
74L5181
74LS190
74LSI91
74LS192
74LS193
74LS194
74LS195
74LS253
74LS257
74LS260
74LS279
74LS367
74LS368
74LS670
BUGBOOK
Continuing Education Series
^^« <•■■
II ctnp — ihii ih troponin)
THE 555 TIMER APPLICATIONS
SOURCEBOOK WITH EXPERIMENTS
by Howi'dM. Bi(llnW3HB
n IKtwquel Nuilofli Jrid grjjyii id cieilt iiiJ/Id-JO DOM Ct
i pom' (uogim mtiiijiTrotnl md conlro' ci'iiWi wny unquo >
lB< int ncrot ma njicnoettt pftoingiipft, mmic inn grom]
16.95 BUOHOK HI S15.H
*f Hitt H. AMf. OiiU C Lirti. Wt4NTi. Jmitsw A. Tttn
Hire n nit took thil pun ii in togtiitt' B««M having much vtfujtile K
id in nvti Ihgti up i um\ ol tipwiments id wluch IIM leidir f ompniel. •ipkini II
) iw In pm ma mtiMuMi rvu 'o 'nt Mirt SO minoconputti
iiihj inttifiwa tysitm II il rtwnmtntlta Iht: »eu Uvp IDs Mel
< Iht BUG8O0KS 1 1 II Sriut pi(KMd-ng *.tii BUGBOOK 111
INSTRUCTOR S MANUAL S3.0D
Ntcatury lot nuiucnon ol Suotooi I ina n 4niix^ aunnont 'tgiiiling
cipt'untms su((«!«yn k» luitntr lud.ng pti«otapn r pl ijir^ri ipoioacnio
atgitii ■kttiion.el A rout' 10' tfl iMcm? mamcuili
BUQBOOK V and VI
OP AMPMAMUAL bf Hwrirt M Berlin W3HB %T56 Qu9l01 Z Vf i^nwi
owi n •*»«■ MMA """""""O 1 " 1
Sis.oo per eel
iw n. HMf. unptiKi A. Tll¥t
ifeOiOiktt M0OA imcraco.'npuli' pioinmniir
nlrrflo'ig An megrim ippisich 10 u"! mil
DnMOOoiRling inij &0KM roicrfutng.piogrii
!* Oigrlil conupit ol Bugoook V into i HHtment oi
piogfimming md inlariicnig Detail A liDo
HOT
MMO imcpfUnr ortugar A piot> im lo' t
iring UtSuoging ina storing
55-QO CMOS M - DESIGNERS PRIMER
AND HANDBOOK Ken eipmded venion
Slilt H tuie tlruclutt ol CMOS Dtmtn through mti
IB. 50
COMPLETE MANUAL FOR DIGITAL CLOCKS by John Welti and John Brooks
familijn;e& lecnniciai or iiotjfivisl wrin bjsic theories beoma digital clocks Includes liouble siiooiing gmOes basic
ciidMClgnsiics ol ciocxs. sniaenrig itchnmues. dock comuonem jya wheels jnj consitucnon lips^
XC209
HC209
KC209
XC209
XC22
KC22
XC22
125" Ola
Rrt
Green
OiariBf
Yellow
.200" die
Red
Green
Yellow
Ouiige
XC526
XC526
XC526
XC526
XC526
.EDJ
1
200" dli
XC5S6
fled
XC556
Red
x:556
['iieen
XC556
Yellow
XC556.
Oiange
.085' eiia
MV50 - Red 6 SI
ITT die.
MVlO Red - 47S1
DISPLAY LEDS
TYPE
MAN 1
MAN 2
MAN 3
MAN 4
MAN 52
MAN 71
MAN 72
MAN 74
MAN Bl
MAN 82
MAN 84
MAN 3620
MAN 3630
MAN 3640
MAN 4610
MAN 4640
MAN 4710
MAN 4730
MAN 4740
MAN 4810
MAN 6610
MAN 6630
MAN 6640
MAN 6650
MAN 6660
POLARITY
Common Anode-red
5 1 7 Oat Mitnr-red
Common Calttodeieo
Common Cat node -red
Common Anode -flieen
Common Anode -red
Commo-i Anode ted
Common Catnode-ied
Common Anode yellow
Commoi Anode -yellow
Commw Cainode- yellow
Common Anode orange
Common Anode-orange -
Common CalWde-oiange
Common Anode orange
Common Cathode- 01 an ge
Common Anode-ted -1
Common Anode ted
Common Calhode-ieO
Common Anode yellow
Common Anooe -orange- D
Common Anode -orange
Common Citnode -orange'
Common Cat bode -orange
Common AnoOe-prinoe
OD 560 99
TYPE
MAM 6680
MAN 6710
MAN 6730
MAN 6740
MAN 6750
MAN 6760
MAN 6780
□1701
DL702
DL704
DL707
DL74I
DL746
OL747
DL749
OL7SO
OL33B
FNH7Q
FMD359
FND503
FN0S07
5082-7300
5082-730?
5087-7304
508? 7340
POLARITY
Common Catriode-orantje
Common Anode-red-O.O
Common Anode-FBd ■ I
Common Calhode-red-D D
Common CatHode-red -1
Common Anode-ted
Common Cathode ied
Common Anode-ted - 1
Common Caihodeied
Common Cathode -red
Common Anode -red
Common Anode red
Common Anode-red ■ 1
Common Anode- ted
Common Cathode-red - 1
Common Caihode-ied
Common Calhode-ted
Common Cathode
CO'iinon Anode
Common Caihode (FNOSOO)
Common Anode |FND5I0)
4 x 7 Sgl Digil-RHDP
4 1 7 Sol Oigil-LHDP
Ove rr an ge character ( - II
4> 7Snj Digit -Hcudecimal
600 19 95
600 1995
600 15 00
RCA LINEAR
CA3013 2 15 CA3082 2.00
CA2023 2.56 CA3083 1 60
CA3035 2.48 CA3086 .85
CA3039 135 CA3089 3 75
CA3046 1.30 CA3130 139
CA3059 325 CA3140 1.25
CA3060 3.25 CA3160 1.25
CA3080 85 CA3401 .49
CA3081 2.00 CA3600 3.50
CALCULATOR CHIPS
AND DRIVER
FCM3817 S5 00
MM5735
2 95
MM5736
1 95
UU5738
2 95
DM886J
200
OM8865
1 00
DMB887
75
DMB889
75
5030
7 95
CLOCK CHIPS
MM5309
MM5J1 1
MM531?
MM5311
MU5316
MMS3IS
\iy5369
MM504 1
7001
8 pin LP
14 pin LP
16 pin LP
15 pin LP
20 pin LP
14 pin ST
16 pin ST
IB pin ST
24 pin ST
B pin SG
14 jjiii SG
16 pin SG
IBpinSG
IC SOLDERTAIL — LOW PROFILE (TIN) SOCKETS
25-49 50-100 1-24
■M oa^j^p^^ 22 pin LP S M
.19 .18 PRLnff
^91^9 2BpitlLP -45
.28 .27 36 pin LP 60
32 -30 SOLDERTAIL STANDARD (TIN) <0 P |r,LP 63
28 pin ST I .99
36 pin ST 1.39
40 pin ST 159
SOLDERTAIL STANDARD (GOLD)
24 pin SG I 70
9374 ■ 7 -segment led driuai
rnmninn jflpjfi L£pJ S .99
25-49 50-100
.52
8 pin WW S40
10 pin WW .45
14 pin WW 39
16 pin WW
28pinSG
36 pin SG
40 pin SG
.75
WIRE WRAP SOCKETS
(GOLD) LEVEL #3
n WW
75
22 pin WW | .95
24 pin WW 1 05
28 phi WW 1.40
36 pin WW i.S9
40 pin WW 1.75
50 PCS. RESISTOR ASSORTMENTS $1 .75 PER ASST.
ASST. 2
ASST. 3
10 OHM I? OHM 15 OHM IB OHM ?•' OHM
?7 OHM j3 OHM 39 OHM 47 OHM 56 OHM
680HM 820HM 100 OHM I20OHM ISO OHM
180 OHM 220OHM .TO OHM 330 OHM 39(1 OHM
4 70 OHM b60 0HM 680 OHM B70OHM IK
82K
1D0K
120K
220*
770R
330K
560K
6B0H
820K
t'4 WATT 5*. 50PCS
1/4 WATT 5*. 50 PCS.
m wAn 5*. so pes
1/4 WAn SS 50 PCS
1/4 WAn 5*. 50 PCS
1/4 WAn 5*. 50 PCS.
1/4 WAn 5% 5QPCS.
ASST. 8R lncludesResistorAssortments1-7(350PCS.) $9.95 ea.
S5.00 Mirtimum Order - U.S. Funds Only
California Residents - Add 6% Sales Tax
Spec Sheets - 254
1978A Catalog Avaiiahle-Send 354stamp
J a
QISliTinES
PHONE
ORDERS
WELCOME
(415) 592 8097
MAIL ORDER ELECTRONICS - WORLDWIDE
1021 HOWARD AVENUE. SAN CARLOS. CA 91070
Advertised Prices Good Thru August
WIRE-WRAP KIT — WK-2-W
WRAP . STRIP . UNWRAP
• Tool lor 30 AWG Wire
• Roll ol 50 Ft. While or Blue 30 AWG Wire
• 50 pes each 1". 2 . 3' ' & 4" lengths
pre-stfipped wire.
$12.95
WIRE WRAP TOOL WSU-30
WRAP . STRIP . UNWRAP $6.95
WIRE WRAP WIRE — 30 AWG
25ft. min. $1.25 50ft S1.95 100 It $2.95 1000ft $15.00
SPECIFY COLOR — White - Yellow - Red • Green ■ Bloe - Black
WIRE DISPENSER — WD-30
50 ft. roll 30 AWG KYNAR wire wrap wire $3,95 ea.
Cuts wire to desired length
Strips 1" ol insulation Specify — Blue-Yellow-White-Red
REPLACEMENT DISPENSER SPOOLS FOR WD 30
Specify blue, yellow, white or red ■ $1. SB/spool
XR2206KA $14.95
Function Generator Kit
(includes chip. PC
Board and instructions)
EXAR
XR2206KB $19.95
Function Generator Kit
(includes all components,
P.C Board and instructions)
XR-L555 $1.50
Micro-Power version ol the
popular 555 Timer ant) directly
interchangeable. Dissipates
1/I5ln the power and operates
down lo 2.7 volts. Pertecl lor
aatlery operation and CMOS cir-
cuits
XR2242CP $1.50
Precision timing circuit tor
generating timing pulses in mi-
nutes, hours and days or up to
1 year by using two. Reduces
cost ol time delay circuits Basic
555 Timer with buill-in 8-0*1
Counter.
XH2Q5
XH2I0
XR2I5
XR320
XR555
XP.556
XR567CP
XR567CT
xrmtop
(H146SCN
•suae
S3 40
4 40
XR1489
xnuoo
XR2206
XR2207
XR2208
XR22C9
XR2711
XR2212
XR2240
XR276J
VR2556
XR2567
XR3403
xtune
XH4212
XRI558
XR4739
XR4741
S 3 20
299
TYPE
IN 746
IN751A
IN752
1N753
1N754
1N9S9
1N965B
1N5232
1N5234
IN5235
IN5236
1N456
1N45B
1N4B5A
IN4001
IN4002
1N4003
IN4004
ZENERS -
VOLTS W
3 3 400m
5 1 400m
5 6 400m
6 2 400m
6B 400m
82 400m
15 400m
56 500m
6 2 500m
68 500m
7 5 500m
50 PIV 1 AMP
100 PIV t AMP
200 PIV I AMP
400 PiV I AMP
VOLTS
PIV 1 AMP
10 PIV 1 AMP
1000 PIV 1 AMP
200m
10m
10m
DIODES - RECTIFIERS
PRICE TYPE
4 100 IN4005
< 1 DO IN4006
4 I 00 1N4007
t 1 00 IN3600
4 1 00 1M4I48
i 1 00 1N41S4
4 1 00 1N4305
28 1N4734
2B 1N4735
28 1N4736
2B 1N4738
6 100 1N4742
6 1 00 1N4744
5 100 1NHB3
1?tOO 1NI184
12 100 1N1185
PRICE
10'! 00
to 1.00
10't 00
6 I CO
15-1.00
12 1 00
20 1 00
2B
28
12 1 00
00
12
12 tw
15 1*
50 PIV 35 AMP
100 PIV 35 AMP
150 PiV 35 AMP
200 PIV 35 AMP
400 PIV 35 AMP
SCR AND FW BRIDGE RECTIFIERS
C36D
C3BM
2M2328
MOA 980-1
MOA 980 3
ISA tar 400V
35A @ 600V
1 6A @ 300'/
12A (5j 50V
12A (a- 2O0V
FW BRIDGE REC
FW BRIDGE REC
C106H1
MPSA05
MPSA06
TIS97
TIS9B
TIS133
IIS1 35
J0409
40410
40673
2N9I8
2N2219A
2N2221A
2N2222A
2N2369
2N2369A
MPS2369
2N2484
2N2907
2N2925
MJE2955
ZN3053
30
5 I 00
6 1 00
6 100
5 t 00
5 100
1 75
TRANSISTORS
^'J3CS5
MJE3055
2N3392
2N3398
PN3567
PN3!5B
PN3569
MPS363BA
MPS3702
2N37Q4
MPS3704
2N3705
MPS3705
2N3706
MPS3706
2N3707
2N371I
2N3724A
?fJ3725A
2N3/72
2N3823
2N39D3
5 1 00
5 1 00
5 1 00
5 1 00
5 I 00
5 I 00
5 1 00
2N3SQ4
;'M3905
2N3906
2IM4013
2N4123
PN4249
P"J425tJ
2N440O
7N4401
2N4402
?N-IJ03
2N4409
2-V5086
2N5087
2N508B
t 'N5089
2N5129
PN5I3-1
PN513B
2N5139
2N5210
2NS449
2NS951
CAPACITOR-
10 pi
22 pi
47 pi
100 pi
220 pi
470 pt
001 ml
0022
0047ml
01 ml
1 35V
15 '35V
2235V
33 '35V
47/35V
68 35V
1 Qi35V
1-9 10 99 100
CORNER
t-9 10-99 TOO -
05 04 03 OOt^F 05 04
05 04 .03 00-17/xF 05 04
05 04 03 0I*F 05 04
05 04 03 022^F 06 05
05 04 03 047,.F 06 OS
05 04 035 VF 12 09
100 VOLT MYLAR FILM CAPACITORS
12 10 07 022ml 13 11
1? 10 07 047mt 21 17
12 10 07 1ml 27 23
12 10 07 22mf 33 27
+ 20% DIPPED TANTALUMS (SOLID) CAPACITORS
28 23 17 1 5 35V 30 26
28 23 17 2 2 25V .31 27
28 23 17 3 3r'25V 31 27
28 .23 17 4 725V 32 28
28 23 17 6 8.25V 36 31
28 .23 17 10/25V 40 35
2B .23 17 15725V 63 50
MINIATURE ALUMINUM ELECTROLYTIC CAPACITORS
Axial Lsid
47 '50V 15
1 0/50V 16
3 350V 14
4 7,25V 15
10/25V 15
10,50V 16
22/25V 17
22fS0V 24
47 /25V 19
47/50V 25
100/25V 24
100,50V 35
220V2SV 32
Z2Q/5QV 45
470725V .33
10O0/16V 55
2200' 16V 70
13
10
47,25V 15
47'50V 16
Radial Lead
13
'16V
I.07JSY
I 0/50V
4 7-16V
4 7 '25V
4 7/50V
10/16V
10/25V
10'SOV
47/50V
100/16V
100/25V
100/50V
22D/16V
470/25V
28 j
1/
Circle 200 on inquiry card.
BYTE Augusi 1978 195
2400 BAUD !
or
300 BAUD KCS CASSETTE INTERFACE
Read and Write Interface Board
• Works with MIK BUG or SWT BUG
• Loads 8K Basic in < 1 min.
• Plugs into the 6800 I/O Bus
Assembled, Tested, & Documented
Super Low Price: $59.95 ppd.
Delivery slock to 4 weeks. To order ■ call or write today.
We welcome Mastercharge, Visa, Checks, or C.O.D.'s
Personal Computing Co.
3321 Towerwood Or. Dallas, Tx. 75234 (214) 620-2776
Send for FREE catalog.,
IXIIIIi: Dept.B
WardWhidden House/The Hill
Portsmouth, NH 03801 USA
RADIO SHACK AND
COMMODORE USERS
Low Cost Software on Compatible
Cassette Tapes for your TRS-80
and PET Computers.
—Games
—Investment/Small Business
—Educational/Scientific
—Kitchen Programs
INTRODUCTORY GRAPHIC GAME
SPECIAL-Star Trek (8K), Football
(8K), Lunar Lander, Wumpus, Bio-
rhythms and Acey Ducey on 2 Cas-
sette Tapes. A $25 value for $20.00 .
SEND FOR FREE CATALOG
Software royalty plans also available.
d^PPARAT, INCORPORATED
P.O. Box 10324
Denver, CO 80210
Circle 268 on inquiry card.
Circle 133 on inquiry card.
Circle 1 1 on inquiry card.
v ;
- 0?W4 MEGABYTE
» C TAPE RECORDERI
QUAD 5 CHANNEL l/4"TAPE
TRANSPORT, ONE FURNISHED
a °s- LOGIC FOR AUTO SELECT, REWIND, E 0T,
^B 3 ' LOW LEVEL, 8 LAST CARTRIDGE-POWER
V REQ'D I2V5AMPS DC -STD RACK PANEL I2I/8"
HIGH I9"WIDE 20"DEEP, WT85LBS, FREIGHT COL.
USED-GOOD COND-LIMITED CITY. DATA BOOK $\0M
.025 SQUARE PIN PUSH-ON TERMINALS,
FOR JUMPERS-PATCH-POWER-PLUG REPAIR, ETC.,
HARD TO FIND! IO/S0.50 I00/J4.50
PC LEAD CAPACITORS 20/$l.00
70PF NI500 I00VOLT 5% DISC N
I20PF I00V0LT 5% DISC 6 PAX
OIMFD200VOLT TUBULAR CERAMIC L
005MFD 500V0LT DISC f j,, _-
005MFD I00V0LT DISC $0.00
.0068 MFD I00V0LT SO.. DIPPED POLY^*
OIMFD 60V0LT 5% POLY TUBULAR, LONG LEADS,
IO/$I.OO IOO/$7.50
£ BI-PIN BASE T-l 3/4 I2V40MA
INCANDESENT I0/$I.00 !00/$a00
a
CORE MATRIX STRIPPED FROM COMPUT
ERS-8 PLANES-NO DRIVERS-NO DATA-
AS IS -NO RETURN. 256+BYTES $19.95, IK BYTES
$2796, 4K+ BYTES $39.95. 2 ONLY 1620 ASS'Y
GOOD COND EACH $125.00
CARD GUIDE 8 FRAME-I5PR-5 I/2H 5I/4WI2I/2L; OR
15 SOCKETS ELCO NO. 700B-035-I63-002 ON RAILS,
YOU STRIP-CHOICE $9.95 EACH. OTHER SURPLUS-
SEND $1.00 FOR LIST OR CALL 617-625-2961, MC.
BAC.VIZA ACCEPTED. $10.00 MINIMUM ORDER
JSE ELECTRONICS SALES
PO BOX 4504, FT. WORTH, TEX, 76106
Circle 193 on inquiry card.
•THE MOST POWERFUL SOFTWARE IN MICRO-
COMPUTER
•ON MOST POPULAR 5" FLOPPY DISKETTE
DRIVE
TDL FORTRAN ~ SIMILAR TO WATFIV
TDL 12 K BASIC - SUPER BASIC
TDL Z-TEL - POWERFUL TEXT EDITOR
TDL TOP - TEXT OUTPUT PROCESSOR
TDL ZASM - MACRO ASSEMBLER FOR Z-80
•ALL WITH DISK BASED INPUT/OUTPUT.
DYNAMIC FILE ALLOCATION. WORKS ON
YOUR NORTH STAR DRIVE OR HORIZON
WITH ABSOLUTELY NO HARDWARE MODI-
FICATION.
HOME COMPUTER CENTRE
6101 Yonge Street
Willowdale, Ontario
CANADA M2M 3W2
14161 222 1165
SURPLUS ELECTRONICS
ASCII
ASCII
IBM SELECTRIC
BASED I/O TERMINAL
WITH ASCII CONVERSION
INSTALLED $695.00
• Tape Drives • Cable
• Cassette Drives • Wire
• Power Supplies 12V16A, 12V25A,
5V35A Others, ■ Displays
■ Cabinets • XFMRS • Heat
Sinks • Printers • Components
Many other items
Write for free catalog
WORLDWIDE ELECT. INC.
10 FLAGSTONE DRIVE
HUDSON, N.H. 030S1
Phone orders accepted using VISA
or MC. Toll Free 1-800-268-1036
In N.H. 603-885-3705
Circle 395 on inquiry card.
Surplus Conversational Data
Communicative Terminal
GTE NOVAR 5-41
FEATURES:
■ Correspondence Code
* 13.45 Characters per second printout
* RS232 Interface
" Documentation included
* 30 day warranty
* High quality printing
■ Reliable heavy duty selectric mechanism
" Can be used as a typewriter
with minor modifications
* Inspected by factory trained technician
* lusedl 8595.00
WRITE:
PHARMASSIST
1810 W. Euless Blvd.
Euless, Texas 76039
call: (817) 469-2480
FORT LAUDERDALE AREA
COMPUTER AGE
MICROCOMPUTERS & PERIPHERALS
for HOME, SCHOOL & BUSINESSES
We specialize in computer systems and
provide a full range of computer
services. Applications software
for business including word
processing, payroll and
accounts receivable.
More to come.
DEALERS FOR
Apple Computers Extensys
Micromation Soroc
. Hazeltine Centronics
DEC North Star
Problem Solvers and Others
Cromemco
999 South State Road 7 (441 )
Plantation, Florida 3331 7
305-791-8080
Circle 62 on inquiry card.
LIST
OURS
$ 735
$ 575
$ 638
$ 600
10-20% DISCOUNT
ON TOP COMPUTER LINES
STARTER KIT SPECIALS
Polymorphic 88 System 2 Kit
IMSAI I 8080/22 Slot+4K RAM Kits
SYSTEM SPECIALS
PolySS System 2 Kit+Poly assembled 16KRAM
and Poly assembled Keyboard $.1455
IMSAI 1-8080/22 Slot*4K RAM-H6K RAM*
VIO-C+MIO (All IMSAI kits) $1807
Polymorphic 8813 complete 1 Disk System $3250
(Above assembled) Additional Drive $ 590
Apple II 16K (assembled) $1195
SYSTEM UPGRADES AND EXPANSIONS
Polymorphic 8813 Disk Upgrade $1450
North Star Disk Upgrade - KIT $777
(M0S-A+PS*CA8) Assembled $ 887
Sanyo 9" Monitor $150. 15" $230, SOROC IQ $ 120 -
GENERAL DISCOUNT POLICY
IMSAI 10-15%, Polymorphic 15%. Apple II 10-20%.
Cromemco 10%, Extensys expendible Memories 20%
Mail Orders Welcome - Open by Appointment Only ,
AAA A COMPUTER HOWS - Established 1976
1477 Harrington Suite 17. Los Angeles. CA 90025
Call 213477-8478
Sponsor ol Poly 88 Users' Group - Membership $5
$1420
$2650
$ 505
$1010
$1200
$ 660
$ 780
$ 845
Circle 171 on inquiry card.
Circle 31 2 on inquiry card.
Circle 308 on inquiry card.
RONDURE COMPANY
2522 BUTLER ST.
DALLAS, TEXAS 75235
214-630-4621
the computer roonn
ASCII Selectric with ASCII parallel electronics.
Immediate Delivery— Shipped from inventory.
ASCII SELECTRIC
SPECIAL SALE Prin ter Mechanism: Heavy
duty input/output, Series
745.
Weight: 120 lbs. Dimen-
sions: 29"Hx3S"Wx33"D.
Print Speed: (14.8 charac-
ters per second)
Platen: 15" wide, pin feed
or form feed device option-
al (132 print positions).
Parallel output only— 15
characters per second ac-
cepts 7 bit ASCII parallel
w/strobe & prints on Selec-
tric. The unit still works as
a typewriter in off-line
mode.
$875.00
TESTED WITH
NEW
ASCII
ELECTRONICS
DATEL SELECTRIC (IBM Selectric Mechanism)
Specifications:
• Size: 21"Wx21"Dx8"H.
• Power Input 115 Volt
Hz
• inferface: RS232
• Weight: 54 lbs. (Shipping
weight 65 lbs.)
• 15" Carriage
• 15 CPS
• Correspondence code
• Half Duplex
• 132 Print Positions, 10
Pitch
Used
$395
NOVATION DC3102A
Used
Working
$150.00
RS232 Connection
300 Baud
Tl 990/4
Single Board 16 Bit Micro
Computer
NEW $250.00
USED MODEMS & COUPLERS
NOVATION TC102 (Acoustic) $45.00
AJ 233 (Acoustic) $25.00
CF 318 (Hard Wire) $25.00
SHUGART
MINI-FLOPPY DRIVE
NEW PRICE
$325.00 ea.
Model SA-400
FLAT PACK ACOUSTICAL
MODEM PICK-UP
Useable with most modem
chips/kits
Used — $17.50 (w/prints)
ORDERING INFORMATION:
We ship the same day we receive a certified check or money order.
Texas residents add 5% sales tax. Please call if you have a question.
Write for our CATALOG of many parts, terminals, printers, etc.
All items subject to availability. Your money returned if we are out
of stock.
SHIPPING INFORMATION:
Modems: $2.00 each; 2 for $4.00 UPS.
Large Items & Parts: Specify Freight or Air Freight Collect
Foreign Orders: Add appropriate freight or postage.
We now take Master Charge and Visa orders, Specify full number,
bank number and expiration date.
1
F. Reichert Sales
1110 E. GARVEY AVE.
W. COVINA, CA 91790
• S20 MINIMUM ORDER
• FREE UPS DELIVERY ON
U.S. ORDERS ONLY OR BY
SURFACE MAIL IF SPECIFIED
• MONEY BACK GUARANTEE
(MOS t LED OEVICES EXCLUDED)
• UNOER 8 HOUR PROCESSING ON
MONEY ORDERS S CASHIERS
CHECKS.
• SORRY! NO COD'S.
PO'S, OR CREDIT CARDS
• CALIF. RES. ADD SI
SALES TAX
• CANADA PUERTO RICO
S U.S. POSSESSIONS ADD
U.S. S3.50. ALL OTHERS
ADD U.S. $7.00
• U.S. FUNDS ONLY!
THE S-100 BUS DIAGNOSTIC BOARD
CENTURION IV
A LEGION OF DIAGNOSTIC TOOLS ON ONE BOARD!
• EXTENDER BOARD "PULSE DETECTOR
• LOGIC PROBE • CURRENT SHUNT
• CONVERTIBLE INTO BACKPLANE.
• ON BOARD CONNECTORS FOR SCOPE, DVM, VOM', GENERATORS, ETC.
• ON BOARD 5 WAY CONNECTORS AND RF CONNECTORS.
• OVER 160 WIRE-WRAP POINTS FOR TOTAL AND COMPLETE FLEXIBILITY
IN WIRE WRAPPING ANY I/O CONNECTOR AND ALL LOGIC PROBE
INPUTS INTO ANY AND ALL 100 BUS LINES, WHICH MEANS YOU
CAN MONITOR AND MEASURE ANY PARAMETER ON ANY ONE OF THE
100 BUS LINES, OR LOGIC LEVEL PROBE ANY FIFTY BUS LINES
SIMULTANEOUSLY. THE ONLY TOOL OF ITS KIND. A MUST FOR ANY
SERIOUS SERVICE EFFORT.
Kit $119«o Assembled $149«o
S-100 32K STATIC MEMORY BOARD
WITH THIS BOARD YOU CAN BEGIN WITH IUST 8K OF MEMORY AND ADD ON
LATER. IT CAN BE AS SIMPLE AS INSERTING MORE MEMORY CHIPS.
FEATURES
I FULLY STATIC — USABLE WITH ALL DMA DEVICES.
2. BUFFERED WITH NOISE SUPPRESSED INPUTS.
3. POPULATED IN IK INCREMENTS (EACH IK CAN BE ACCESSEO INDIVIDUALLY).
4 INCLUDES A RELIABLE SINGLE SOURCE +5 VOLT REGULATOR.
5 PROM COMPATIBLE: THE BOARD MONITOR CAN BE EXCHANGED (PIN BY PIN WITHOUT
BOARD MODIFICATION) WITH A BIPOLAR PROM PROGRAMMED TO YOUR SPECIFICATIONS.
6. CREATES NO WAIT STATES.
7. PRICES QUOTED ARE FOR 300nS 200mW MEMORIES.
— ASSEMBLED UNITS ARE FULLY TESTED AND BURNED IN.
— KITS AND BARE BOARD COME WITH FULL ASSEMBLY AND CHECKOUT INSTRUCTIONS.
8K 16K 24K 32K BARE
KIT $270°° $440°° $580°° $695°° BOARD
ASSEMBLED $296» $465°° $612°° $740°° $38»
MAXI SWITCH KEYBOARDS
UNENCODEDMOUNTED ON G 10 GLASS
EPOXY BOARDSA BLACK METAL FRAME
KEEPS KEY SWITCHES SECURELY IN PUCE.
NO. 1
— !3 KEY MAIN KEYBOARD
—10 AUXILLARY & CURSOR
CONTROL KEYS
—II KEY NUMERIC PAD
—BANK Of 5 AUXILLARY
POWER S CONTROL.
ROCKER ARM SWITCHES.
ONE OF THEM LIGHTS UP.
$39"
WW. SOCKET CONNECTOR
FOR NO. 1 KEYBOARD
$2»
NO. 2
—S3 KEY KEYBOARD
—1 AUXILLARY POWER/
CONTROL DPOT ROCKER
ARM SWITCH
$29"
BEIGE METAL FRAME
FOR NO. 2
$995
SOCKET CONNECTOR
FOR NO. 2 KEYBOARD
$29
WANT PEACE OF MIND? IN
CRITICAL APPLICATIONS
USE BIPOLARSII
82S10
82S11
BIPOLAR RAMS
1024x1
1024x1
$4.95
$4.95
BIPOLAR
PROGRAMMABLE LOGIC ARRAYS
825100 $11.95
825101 $11.95
8223
82S23
82S126
93427
82S131
63061
3604
BIPOLAR PROMS
256 (32 x 8)
256 (32 1 8)
1024 (256 x 4)
256 x 4 TRISTATE
2048 (512 x 4)
2K TRISTATE
4096 (512 x 8)
$2.65
$3.40
$4.95
$4.95
$6.95
$5.45
$11.95
ULTRA LOW POWER
256 > 4 • BIT STATIC CMOS RAM
S101L-3 650nS 30mW
DATA RETENTION
CURRENT
0.7uA AT 2 VOLTS
$9
95
ASCII KEYBOARDS
FOLLY ASSEMBLED
FULLY FUNCTIONAL
—MAIN KEYBOARD SECTION OF
58 KEYS
—A HEX PAD OF 15 KEYS
—16 MORE PERIPHERAL KEYS
—ASCII ENCODED
NO. 1 - WITH ON BOARD UV PROM
$9995
NO. 2 - IDENTICAL TO THE ONE ABOVE,
BUT WITHOUT ON BOARD UV PROM
$79 95
S-100 EXTENDER BOARD
WITH CONNECTOR
A MUST lor trouble-
shooting your Computer boards
$1795
S-100 EXPANDABLE MOTHER BOARD
• 8 SLOT EXPANDABLE BACKPLANE
• QUIET— GROUND PLANE DECOUPLES All SIGNAL LINES
• RELIABLE GOLD CONTACT CONNECTORS
COMPLETE
$66
00 ASSEMBLED
$89°°
S-100
100 PIN
EDGE CARD
CONNECTOR
GOLD CONTACTS
$4"
WIRE WRAP
POST
2 LEVEL
10/78C
100/16.50
4 LEVEL
10/98c
100/$7.40
HI-REL GOLD
WIRE
WRAP
SOCKET
POST
10/S1.20
I00/S9.90
1000/S79»»
IIST PfllCE 29c
SUMMER SPECIALS! LOW PROFILE SOLDERTML
I.C. SOCKETS. OTHER SIZES IN PREVIOUS AD.
GOLD INLAID TIN
24 PIN 5/ J 1.09 S/J0.89
28 PIN 5/S1.19 5/S0.99
40 PIN 4/S1.19 4/S0.99
PRICES AND AVAILABILITY SUBJECT TO CHANGE
WITHOUT NOTICE.
Circle 207 on inquiry card.
BYTE August 1978 197
What's New?
PERIPHERALS
Give Sight to Your 6800 Computer System
The Digisector (DS-68) functions in
conjunction with an inexpensive tele-
vision camera to present the computer
with a high resolution digitized picture
of the scene in view of the camera lens.
The Digisector requires one IO slot in
the SwTPC 6800 computer (or equiva-
lent) and accepts either interlaced
(NTSC) or noninterlaced (industrial)
sync pulses from the video source.
It features 256 by 256 picture element
resolution, with up to 64 levels of grey
scale. Data conversion times vary with
resolution requirements but can be
as low as 3 us per picture element.
Applications include precision
security systems, moving target indica-
tors, computer portraiture, and fast to
slow scan conversion for ham radio
operators. With clever software, the
Digisector can read paper tape, punched
cards, strip charts, barcodes and musical
scores.
The Digisector comes fully assem-
bled, tested and burned in. The DS-68 is
priced at $169.95. Software for com-
puter portraiture and slow scan tele-
vision is included. For further informa-
tion, contact Micro Works, POB 1110,
Del Mar CA 92014."
Circle 61 5 on inquiry card.
Dual Printer from Addmaster
Acoustic Coupler Aids Clarity
This dual printer prints three lines
per second and has 1 1 character loca-
tions per column with a dual capacity
of 6 to 10 columns, up to 22 columns
as a single. A large library of characters
is available.
Among the features are a small
print mechanism, self-inking ribbon,
variable paper space control. A tape
rewind (one or both sides) is available.
The Addmaster dual printer operates
with a 117 VAC 1.3 A drive motor.
Other voltages are available. Quantity
prices start at $66. For further infor-
mation contact Addmaster Corp,
416 Junipero Serra Dr, San Gabriel
CA 91776.-
Circle 616 on inquiry card.
A new acoustic coupler (modem),
designed to enhance clarity and accuracy
of telephone line data transmission to
and from computer terminals, has been
introduced by Information Products
Division of Omron Electronics Inc,
432 Toyama Dr, Sunnyvale CA 94086.
The series 8300 Data Modems are
designed for acoustic and hardware
operation via the switched telephone
network or private line installation.
Acoustically coupled with a Western
Electric 500 handset or equivalent, the
8300 modems offer a convenient
method of data transmission.
The 20 mA current loop interface
(plug compatible with a DECwriter
LA36) and a separate 25 pin RS-232C
EIA connector may be operated simul-
taneously. The series is available as
originate-only or originate-and-answer
switch selectable for 300 bps operation.
The modem is priced at $275 for single
units."
Circle 61 7 on inquiry card.
IO Processing Unit
A general purpose IO processing
board, the APU100, which provides a
high performance to the standard
S-100 bus has been announced by
Extensys Corporation. Designated the
Extensys Asynchronous Processing Unit,
the APU100 includes an on board 8080
processor. The unit operates asynchro-
nously with the central processing unit
of the computer system and transfers
information by use of direct memory
access.
The APU100 uses the system clock
on the bus to provide internal timing
so that all system processors are synchro-
nized. The unit has 8192 bytes of
programmable memory storage operating
at 300 ns access time and 1024 bytes of
2708 type erasable read only memory
storage in addition to its dedicated 8080
processor.
Using the APU100 frees up 8 K bytes
of system memory by moving IO rou-
tines to the APU100, allowing more
memory for application programs. Sys-
tem performance is improved with the
opportunity to buffer up information
using direct access memory. Slow speed
IO devices can be serviced at their
rated speeds while system operation
continues at normal speed.
When used with Extensys' MM-16
Memory Manager, the APU100 per-
forms in a high speed direct access
memory mode, transferring greater
chunks of data at full memory speeds.
Contact Extensys Corp, 380 Bernar-
do Av, Mountain View CA 94040, for
additional information."
Circle 618 on inquiry card.
198 August 1978 ©BYTE Publications Inc
Circle 296 on inquiry card.
PACIFIC OFFICE SYSTEMS
presents the
'Spbii
J)
$$0^
standard IBM model 725
Selectric Typewriter (or your own 15" carriage
Select ric I or Selectric III is the heart of this off-lease batch-processing
hard-copy I/O terminal. (Thousands were made for Sears and other major companies). Pr
ing speed is 15 characters per second. Data transfer rate between terminal and CPU can be as fast a:
2400 band) by means of the 350 character line buffer and built-in digital cassette tape drive which stores data from the keyboard
as typed or as transmitted from a computer or another terminal {such as the built-in Bell 103 or 202 modern optional.)
FEATURES: • Available in EBCDic or IBM correspondence code versions with
ASCII translation and I/O driver program in 8080 assembly language • Micro-
computer hardware interface is 10 wire EIA RS232 connector cable between
terminal and standard serial I/O card such as Processor Tech 3P + 5 • Includes
complete documentation: Operator and Service Manuals, schematics, interface
instructions for microcomputer and software listing of I/O driver and ASCII
translation program • Optional Built-in 103 or 202 Modem available • Typewriter
can be serviced by any IBM technician (solenoids, switches and wires have been
attached to the bottom of the typewriter without physical alteration of the
factory mechanism).
MODELS AND PRICES:
MODEL 5541 (IBM 2741 -Type Selectric Terminal S 895
MODEL 5550 (w/built-in cassette drive for
offline data storage or use as memory typewriter S1495
MODEL 5560 (ASCII code w/cassette drive) S1495
•/.PRICE SPECIAL:
Model 5541, 5550, 5560 Selectric Terminals available AS IS for '/. the prices listed
above. Here's an opportunity for the do-it-yourself hobbyist to acquire high
quality hardware at rock-bottom prices. Typical condition of units: typewrite!
need cleaning and adjusting but not overhaul; electronics are complete but need
trouble shooting. POS maintains a complete stock of tested parts at reasonable
prices for repairs. Documentation included: same as the warranted terminals,
except no microcomputer interface software.
I/O TYPEWRITER ONLY SPECIAL:
MODEL 725 IBM Selectric includes keyboard pickup switches, out-put solenoids,
and magnet driver PCB to coordinate input/output signals. Requires +24V and +5V.
MECHANISM ONLY, cleaned and adjusted $325
CASE and POWER SUPPLY $75
I/O SELECTRIC CONVERSION KIT:
Convert your office Selectric to an I/O typewriter. Includes keyboard pickup
switches, out-put solenoids, and magnet driver PCB. Attaches to typewriter,
no drilling necessary. Requires +24V and +5V. Complete documentation and
instructions included S150
JUST ARRIVED:
LAMBDA REGULATED POWER SUPPLY +5VDC (
Call or write for details, quantity discounts,
and our CATALOG. See the July 1978
BYTE for a list of other products and prices
(including tape drives, power supplies,
paper tape readers, modems, video
monitors, pinfeed platens. ASC II
encoded keyboards, etc.).
30 amp $75
NO RISK I 7 DAY
APPROVAL ON ALL
MAIL-ORDERS. FULL
REFUND ON RETURNS.
All orders shipped from stock. No back orders,
no substitutions. All equipment is shipped
insured FOB Palo Alto within 14 days after
check clears or COD order is received. M/C &
VISA accepted.
PACIFIC OFFICE SYSTEMS. INC.
2600 El Camino Real, Suite 502
Palo Alto, Calif 94306
(415) 321-3866
90 day warranty against defects in material
or workmanship on all used equipment. Full
documentation includes PLUS interface instruc-
tions where indicated. Availability subject to
prior sale. Prices may change without notice.
cybercom boards
MB-1 MK-8 Computer RAM (not S-100). 4KX8, uses
2102 type RAMs, PCBD only $22.00
MB-3 1702A EROM Board, 4KX8, S-100 Switchable
address and wait cycles, kit less PROMS $58.00
MB-4 Basic 4KX8 ram, uses 2102 type rams S-100
buss. PC board $24.95
MB-6A Basic 8KX8 ram uses 2102 type rams, S-100
buss. KIT 450 NSEC $125. PCBD $24.95
MB-7 16KX8, Static RAM uses U P410 Protection,
fully buffered. KIT $375.00
MB-8A 2708 EROM Board, S-100, 8KX8 or 16KX8
kit without PROMS $75.00
MB-9 4KX8 RAM/PROM Board uses 2112 RAMS or
82S129 PROM kit without RAMs or PROMs . .$72.00
10-2 S-100 8 bit parallel I/O port, % of boards' is for
kludging. Kit $46.00 PCBD ..$24.95
10-4 Two serial I/O ports with full handshaking
20/60 ma current loop: Two parallel I/O ports.
Kit $130. PCBD $24.95
VB-1B 64 x 16 video board, upper lower case Greek,
composite and parallel video with software, S-100.
Kit $125.00 PCBD $24.95
Altair Compatible Mother Board, 11 x 11 Vi x Vb".
Board only ....$40.00. With 15 connectors ....$90.00
Extended Board full size. Board only $ 9.00
With connector $13.00
SP-1 Synthesizer Board S-100
PCBD $39.95 KIT $135.95
82S23
82S123
82S126
82S129
82S130
82S131
MMI6330
4N26
4N27
4N28
LM323
$1.50
1.50
1.95
1.95
3.00
3.00
1.50
.75
,75
.75
2.95
PRIME DEVICES
8080A
8212
8214
8216
8224
8228
8251
8255
21L14
11.50
3.75
6.50
3.95
4.00
6.95
9.95
9.95
8.50
nHHnC/ ine. WAMECO INC.
MEM-1 8KX8 fully buffered, S-100, uses 2102 type
rams PCBD _ $24.95
Mother Board 12 slot, terminated, S-100. board
only $30.95
CPU-1 8080A Processor board S-100 with 8 level
vector interrupt PCBD $24.95
RTC-1 Realtime clock board. Two independent in-
terrupts. Software programmable. PCBD $23.95
EPM-1 1702A 4K Eprom card PCBD $24.95
EPM-2 2708/2716 16K/32K
EPROM CARD PCBD $24.95
SHORT MOTHER BOARD Short Version of QM-1A
8 Slots PCBD $27.95
2102AL-2 Prime 250 NSEC $1.70
2102AL-4 Prime 450 NSEC $1.30
2708 Prime (National) $$9.95
1702A-6AMD Prime $3.50
1702A Intel Not Prime (2US) $2.00
2501B $1.50 1488N $1.50
2502B 1.50 1489N 1.25
2504 1.50 MC4044 2.25
2507V 1.50 8038 3.90
251 0A 1.50 5320 5.95
2517V 1.50 5554 1.90
251 8B 1.50 5555 2.50
25196 1.50 5556 2.50
2521 1.50 5055 1.25
2522 1.50 5312 4.00
2525 1.50 MH0025 1.50
2527 1.50 MH0026 1.75
2532V 1.50 MH0028 1.90
2529 2.75 5262 .50
2533V 1.95 2101 3.50
M
419 Portofino Drive
San Carlos, California 94070
Please send tor IC, Xistor
and Computer parts list.
INTRODUCTORY OFFER. Good for the month of this issue.
WAMECO
16K STATIC 2114 RDM BOARD
PCBD $23.95
PCBD & MIKOS PARTS ASSORTMENT
#7. All parts, including sockets
and prime 2114L $275.95
Assembled, Test and
Burn in by PROKO $335.95
Kits based on Wamco & Cybercom Boards wi
h Mikos
parts assortment.
8080 CPU KIT $ 89.95 Assembled.
$135.95
REAL TIME CLOCK KIT ... . S 65.95 Assembled
5 99.95
VIDEO KIT $ 89.95 Assembled
$135.95
8K 450 NSEC. (MEM-1) KIT. $125.00 Assembled
$145.95
8K 250 NSEC. (MEM-1) KIT. $155.00 Assembled
S1 80.95
LIMITED QUANTITY
8K STATIC RDM. 450 NSEC. BUFFERED. ASSEMBLED.
TESTED AND BURNED IN. PARTS MAY BE UNMARKED.
ALLOW 3 WEEKS 5125.95
VISA or MASTERCHARGE. Send account number, expira-
tion date & sign your order. Approx. postage will be added.
Check or money order with order will be sent post paid in
U.S. II you are not a regular customer, please use charge.
cashier's check or postal money order, otherwise there will
be a two-week delay for checks to clear. Calif, residents
add 6% tax. Money back 30 day guarantee. We cannot
accept returned IC's that have been soldered to. Prices
subject to change without notice. $10 minimum order.
$1.00 service charge on orders less than $10.
Circle 247 on inquiry card.
BYTE August 1978 199
What's New?
PERIPHERALS
The Terrapin Inc Turtle. . .
Here are some more details about the
new Terrapin Turtle, manufactured by
Terrapin Inc, 33 Edinborough St, 6th
Floor, Boston MA 02111. The infor-
mation is condensed into the form of a
photograph of the new peripheral which
accompanies this first formal press
release from the new company. Without
bending the truth (too much), it could
be claimed that this peripheral (exclud-
ing the computer required to drive it
through a cable) is the world's least
expensive commercially sold mobile
general purpose robot if we exclude
certain dedicated office or hospital
delivery robots (at tens of thousands of
dollars) and prototype R2D2-like forms
seen in a pen (see page 16 of July 1978
BYTE) at the West Coast Computer
Faire but never seen on the market to
date in the advertising or literature
which passes this desk. The Terrapin
Turtle, a small electronic robot con-
trollable by microprocessor, can "walk"
(roll), touch (with its 3 1/2 inch radius
hemispherical dome), and draw (lower-
ing its pen attachment), as programmed.
It has lights for eyes and a speaker to
emit sounds. The Turtle requires a
parallel interface: one compatible with
an S-100 bus is available as an accessory.
Each Turtle comes with 10 feet of cable
and may be purchased either as a kit or
fully assembled. Each kit comes with a
tested, 20 page instruction manual.
The Turtle may be used to map
rooms, solve mazes, teach simple geo-
metry or programming concepts, as well
as many other tasks. The Turtle is 5
inches high, crawls at 6 feet per second
and is extremely versatile due to its
touch sensors. Brochures are available.
The kit costs $300; the assembled
Turtle is $500; and the interface costs
$40."
Circle 529 on inquiry card.
Single Board Microperipherals
from Burr-Brown
Intelligent Low Cost Terminal
The MP810 and MP810-NS are two
new microperipheral boards from Burr-
Brown designed to accept up to 24
digital inputs. The boards are elec-
trically and mechanically compatible
with the Intel SBC-80, Intellec MDS
and National BLC-80 microcomputers
and operate from their +5 VDC supplies.
They are programmed as memory loca-
tions and, with each input using one
memory bit, any read command may
be employed. When the board is read,
logic represents an open contact;
logic 1, a closed contact. Each read
command inputs the status of eight
channels.
The MP810, with an on board power
supply, operates with dry relay contacts
and the MP810-NS, with voltage inputs,
operates with wet relay contacts. Each
group of eight inputs is isolated from
other input groups and from com-
puter bus to 600 VDC. Isolation
between inputs of the MP810-NS is
300 VDC.
Input impedance is 15 k ohms and
input delay is 25 jjs maximum open to
closed; 100 lis maximum closed to open.
Minimum voltage needed to detect logic
1 is 17 V; logic 0, 4 V. For contact
closure sense, maximum closed imped-
ance is 6 k ohms; the minimum open
impedance is 80 k ohms. Maximum
voltage that can be applied across the
MP810 input is 120 VAC RMS, or
60 VDC; across the MP810-NS inputs,
168 VAC RMS, or 84 VDC. In 1 to 9
quantities the MP810 is priced at $355,
the MP810-NS at $295. For further
information contact Burr-Brown, Inter-
national Airport Industrial Park, Tucson
AZ 85734.-
Circle 530 on inquiry card.
The ZMS-50 is an intelligent terminal
geared for a wide variety of data entry
and text editing applications. It is a
microcomputer based keyboard and
video display unit controlled by
Zentec provided programs execut-
ing out of read only memory. The
terminal consists of a general purpose
keyboard, 25 line by 80 character video
display, 4 K or optional 16 K bytes of
system programmable memory, and an
asynchronous or synchronous RS-232C
interface supported by a telecommunica-
tions firmware package. An optional
simplex (output only) RS-232C interface
to a local printer is also available. Priced
under $2000 from Zentec Corp, 2400
Walsh Av, Santa Clara CA 95050."
Circle 531 on inquiry card.
200
August 1978 ©BYTE Publications Inc
FREE PROBES FREE PROBES FREE PROBES
ILM3A 3 dig 1% DC $125.
ILM3.5A 3Vl dig .5% DC $147.
ILM40A 4 dig .1% DC $190.
|LM4A 4 dig .03% DC $2
Rechargeable batteries and cha^
eluded
Measures DC Volts, AC.VaJ^ ^TWand
Current
Automatic polarila^dlJflkPand i
indication ^a# *t_r** 1. 1 Taj - L MS-215 Dual Trac e Version o( MS-'
• Rechargd&J\)tteries ajl^wSM'*"
■• Mea*B^» "olts^"%Vtfi,*>hms and
ftatij p.
IriBlcat
I- No
adjul
|* Batte^oporated
line operation.
> Larae LED display for easy reading without
interpolation
Siza: l.0"H x 2.7"W x 4"D
Pa/la & labor guasantaad 1 yMr
Till stud option * 3.50
Leather case f 16.00
S100-WWG 50/100 Com. .125 cirs.
3 LEVEL WIRE WRAP 025' sq. posls
on 250 spaced rows. GOLD plated.
1-4 5-9 10-24
$4.00 S3 75 S3.50
S100-STG 50/100 Com. .125 cirs
DIP SOLDER TAIL on .250 spaced
rows for VECTOR and IMASI
motherboards GOLD plated.
1-4 5-9 10-24
S4.00 S3. 75 S3. 50
RGS1G 50/100 Com. 125ctrs. DIP
SOLDER TAIL on .140 spaced rows for
ALTAIR motherboards. GOLD plated
$5.00
S100-WWN 50/100 Com. 125 ctrs
3 LEVEL WIRE WRAP 025" sq posts
on 250 spaced rows NASGLO tin-
nickel plated.
1-4 5-9 10-24
S3. 50 S3. 25 S3. 00
S100-STN 50/100 Com .125 ctrs
DIP SOLDER TAIL on .250 spaced
rows for VECTOR and IMASI
motherboards. NASGLO tin-nickel
plated.
1-4 5-9 10-24
$3.50 S3. 25 $3.00
R681-3 50/100 Com. .125 ctrs
PIERCED SOLDER EYELET tails
GOLD
S7.35
Purchase any of the LM series
Meiers and buy the LEA THER CASE
for 1C
24 pifl
28 pin
1.20
ibined fof*be|
All sockets are~Gt)0*3^e>aLclosed entry'
stacable 2 level. SoiaeanaAcow Profile.
i Plugs available CALlTBR QUOTATION
Other Popular Edge Connectors
R644-G 22/44 Com. .156 ctrs.
PIERCED SOLDER EYELES tails.
GOLD plated.
1.4 6-9 10-24
$3.00 $2.75 $2.50
R644-3 22/44 Com.
WRAP tails. GOLD
$4.71
156 ctrs WIRE
ATTN: OEM'S and Dealers, many other connectors available call or quotation.
Plugboards
3682 9.6 "x 4.5"
$10.97
3682-2 6.5" x4. 5"
$9.81
hVDensily Dual-ln-Line
Plugboard tor Wire Wrap
with Power & Grd Bus
Epoxy Glass 1/16" 44
pin con spaced 156
3677 9 6"x4.5'
$10.90
3677-2 6.5" x 4.5"
$9.74
Gen. Purpose D.I. P.
Boards with Bus Pattern
lor Solder or Wire Wrap.
Epoxy Glass 1/16" 44
pin con, spaced .156
3662 6.5"x4.5"
$7.65
3662-2 9.6" 1 4.5"
$11.45
P pattern plugboards for
IC'S Epoxy Glass 1/16"
ipincon spaced 156
8K 450 ns
EPROM
FACTORY PRIME
$10.00 EA.
25 + Call For
Price
■mm
II
II
^^|j|iiiii!]lii!iiijililili[llllllll'
3690-12
CARD EXTENDER
Card Extender has 100
contacts-50 per side on 125
centers-Attached connector-is
compatible with S-100 Bus
Svstems $25.00
3690 6.5" 22/44 pin 158
ctrs. Extenders $12.00 ,
14 & 16 PIN
^GOLD 3 LEVEL
\WIRE WRAP
SOCKETS
'14 - G3 100 for
$30.00
16-G3 100 for
$30.00
50 of each for $32.00
are End & Side stackable.
^Jjo^gd^njrj^^,^
■LJBf
FM-7
With
Rechargeable
Batteries A
Charger
Unit $195 I
>C-5
with
lachargaabl«
nlterles & I' cumes include • fly using me it* NLS SC 5 Prescaitr ITie range ol
-h»rn«r Hit FM-7 Frequency Meier, which is 10 HMO 60 MHz. may becitanOeo
'" Tl n „ to b12 MHi (Ihe upper VHF & UHF Irequency QanOs) • Tne FM-7 ul.-
$89 lues an LEO readout, providing 7-dign resolution • The FM-7 can be
accuracy of COOOt % • the SC-5 is aceurale 10 one
pari per million • Each unit las 30 millivoils sensitivity, is nailery
powered and las a cnairjer utiB included • Dimensions ot each are t 9'
H i 2 7" W i 3.9" D • The units may Be obtained separately or as a
' Frequency Duo ' ' • Parts & Labor guaranteed I year
option S 3. SO
Leather case 116 00
SPECIAL
14CS2100for l 14 00
16CS2 100for»16 00
14 pin CS2 10 for '2"
16olnCS2 8 for '2"
These tow cost DIP sockets will accept
both standard width plugs and chips.
For use with chias, the sockets otter a iow
profile heiQrii ol only ,126" above Ihe board,
These sockets are end stackable.
w
WRAP POST
lor ,012 dia. holes
(all boards on tins page)
T-4*pka. 100 S Z.28
T-44 pkg
1003 . . SI* 00
A-13 hand installing
8 West Rosecrans, Hawthorne, Cfl 90250
tool
S 28
Send lor our latest brochur
SA MC 8AC check Money Order COD.US funds Only uA
SiO 00 Orders less man %lb 00 include 10% shipping and hdnaii
include your pnone no "Sorry.no over the counter sales
phone orders welcome
esidents add 6% sales lax Mini-
;g. excess relunded Jusl in case
' Prices subject to change
without notice.
\*L I o) y /0"487b OEM and Institutional inquiries invited
24 PIN DIP PLUGS
WITH COVERS
■MllllUfa*
3/ $1.00
an / sm on
FREE PROBES FREE PROBES FREE PROBES
Circle 304 on inquiry card.
BYTL Aurum l l J7S 201
What's New?
PERIPHERALS
Serial Minifloppy Buffered Terminal
Dot Matrix Printer Line Offered by
Motorola
Motorola Microsystems, POB 20812,
Phoenix AZ 85036, has announced a
new line of four dot matrix printers. The
line printers offer a full range of fea-
tures, including 80 and 132 column for-
mats; 60, 120 and 180 characters per
second (cps); bidirectional and logic
seeking print heads. All four printers are
equipped with an interface IO module
and an interconnection cable assembly
that adapt them to the various Motorola
microcomputer development systems,
including the EXORciser and the EXOR-
term 100 and 200. These interface
accessories permit the printers to be
used with the company's line of Micro-
modules (microcomputer board systems
and subsystems). Model 779 is a printer
capable of printing from 80 to 132
columns of 5 by 7 dot matrix at rates
of from 21 to 90 lines per minute at
60 cps.
The Model 781 is an 80 column
character printer which features bidi-
rectional logic seeking movement of the
print head enabling throughput of up
to 120 lines per minute. The Model 702
is also equipped with a bidirectional
logic seeking print head with a head
speed of 120 cps. This model has 132
character print columns and is capable
of throughput of from 45 to 185 lines
per minute (Ipm). The Model 703
features a head speed of 180 cps and
provides throughput rates of from 70
to 280 Ipm. All models except the
779 have tractor feed with a paper out
sensor and use standard computer
paper, from one to six parts. Model
779 has pinch roll feed and uses stand-
ard Teletype roll paper. Prices are
$1495 for the Model 779; $2095 for
Model 781; $2500 for Model 702;
and $3125 for Model 703."
Circle 538 on inquiry card.
Universal IO Board
^z^nm *$
This IO board, called a universal IO
board by the company, has space for a
40 pin wire wrap socket into which you
can plug any of Motorola's 40 or 24 pin
interface integrated circuits; the data
and control lines are connected to the
appropriate edge connector pins. All
other bus connections are brought
out to a 16 pin socket pad. A +5 V
regulator and all Molex connectors are
provided; regulated +5 V and ground
are bussed among the locations for up to
35 14 pin integrated circuits. The price
is $24.95 completely assembled and
tested. Contact The Micro Works,
POB 1110, Del MarCA 92014."
Circle 542 on inquiry card.
Multifont Printing Capability Added to
Diablo Matrix Printers
The Model 24610-03 library card, in
conjunction with the Diablo Model 2300
matrix printer, permits users to mix up
to nine type fonts while printing a single
document.
The card, which inserts into the
printed circuit card cage of the printer,
can be programmed by Diablo to add up
to four different type and special symbol
fonts to the standard font with each
printer. In addition, the Model 2300
offers an optional plug-in read only
memory which contains four additional
foreign language or special fonts.
Each of the eight additional fonts
available through implementation of the
library card and the read only memory
recognizes the full 128 character ASCII
set and can print up to 96 of those char-
acters.
|=C~||
This intelligent buffered data termi-
nal, Model IDS 3901, is offered by Inter-
dyne Company, 14761 Califa St, Van
Nuys CA 9141 1. It uses a 5Vi inch indus-
try standard diskette drive and is RS-
232C compatible. Average access time is
0.6 seconds. It has a data buffer holding
up to 128 characters and is capable of
being edited, a block rewrite capability
and it allows insertion of blocks or entire
paragraphs into previously written text.
An automatic high speed block search
and verify are included as well as charac-
ter pattern search under operator control
or prerecorded instructions. The IDS
3901 is controlled by 30 ASCII com-
mands and outputs 13 English messages.
Other features include storage of 143
K bytes per diskette, switch selectable
asynchronous transmission rates from
110 to 19,200 bps, ASCII text as well as
transparent binary modes and auto error
check and retry.
All this is contained in a stand alone
desktop unit for connection to printers,
videos, modems, computers and other
terminals. By adding the IDS 3901 to a
keyboard and display, users have an in-
telligent system with store and forward
capability for program preparation and
loading, data entry and storage, text
editing and off line printing.
The IDS 3901 is priced at $2050."
Circle 539 on inquiry card.
Any combination of the eight addi-
tional fonts and the standard Diablo
matrix font can be selected by the user
under program control and can be mixed
while printing. Among the standard
fonts from which the user can select are
German, Norsk, Scandia, Hebrew,
French, French Canadian, and APL lan-
guages and symbols, in addition to high
resolution ASCII and APL.
The cost of the Model 24610-03
libraby card in OEM quantities starts at
$120. For further information, contact
Diablo Systems Inc, 24500 Industrial
Blvd, Hayward CA 94545."
Circle 540 on inquiry card.
Product Update
In the June 1978 BYTE (page 178) we
published a What's New? item describing
the PET 100, an S-100 bus adapter
for the Commodore PET computer. The
manufacturer, HUH Electronic Music
Productions, has notified us that the
name has been changed to S-100 MPA.
The product has been upgraded so that
it meets the proposed IEEE specifi-
cations for the S-100 bus and it now can
be a stand alone processor. The com-
pany's new address is 1429 Maple St,
San Mateo CA 94402."
Circle 541 on inquiry card.
202 August iS7S O BYTE Publications Inc
COMPUTER rfCIPUECAL&
PARTS WCRrSHCf)
POLY PAKS INTRODUCES THE FIRST MAGAZINE RETAIL STORE
FOR THE ELECTRONIC MAIL-ORDER HOBBYIST!
MAIL
ORDER
■ ■•t HM M mMiit iii mtwi
[faflEW
KEYBOARD &
ENCODER KIT
Cat. Ho. BS5O0I Kit $65.00
Cat. No. 655002 Wired $69.95
Outputs standard 7 bit ASCII: interfaces with most dati . _
Keyboard pre-astieniblecl onto PC board. 2 key rollover. Electr
MICROPROCESSORS!
MEMORIES! SUPPORT!
Order by Cat. No. 893459 and type
DZ-MA
0MC8S00L
13 8080*
(J 8008
O1101
Oil 03
D2102-L1
D21U
Dill!
□ 1702A
O 2708
OMK4200P1
DMK409S
OMMUS
D MMS202
DMM5203
aMMS2M
DMM52G2
a 8212
Olill
D (224
D8128
D 8251
□ 8255
Description
8 Bit CPU .
•ntcpu _
Sale
$34.95
256 m Static RAM
IK Dynamic RAM
IK x 1 Lo-power RAM_
256 x 4 Static RAM
256 x 4 Sixth: RAM
256 x » EPROM
•K EPROM
2K x 1 Dyn RAM .
8 Bit I/O Port _
Communication Int _
Porlph Interface
19.95
12.65
7.95
.69
1.29
1.69
5.95
2.49
3.95
12.95
3.95
3.95
29.95
2.95
8.95
.99
.99
3.95
3.95
4.95
8.95
1130
11.95
• Uses MOS Encoder ROM!
, ., : • 7 LED Test Feature!
shift lock and carriage return. 4 modes: Normal, control, shift, e 64 key keyboard'
shift/control. Additional functions can be assigned by user. +5, - m rn^«rf««i5li acrii rki.^.J
12V6C. 200 ma. Negative or positive logic. Jumper selectable. T , Jl° ^ * A Sift, il TiVx? !
Exlcusive test feature...? LED's display the ASCII ratio. * l"'«rt»ce» with- ALTAIR, ;
Complete kit. nothing else to buy! Size: 13" X 6 1/2 x 1 1/4". 3 lbs. IH1SAI, and morel
HANDY COMPUTER
MULTITESTER
• 1000 ohms per volt
1 % precision, movement**
diode protected against
burnout. Measures DC volts
0-15-160-1000; AC volts
0-15-160-1000; DC current
0-1 SOma; resistance XI 000.
Sensitivity 1000 ohms/volt
AC-DC. Uses peullte cell,
not Included. Site 2 3 / 8 x
3Vi x 1%". Wt. 5 ozs.
Cat. No. 85 3921
oDnaLXjaLXoxioooixoni^
HEXADECIMAL MICROPROCESSOR ,.,
Address microprocessors, A 1TII {*£%%ITItf\f
control computer operated **MM tUill/WL ^ - q-
eouipment. 2 key rollover. Has KEYBOARD KIT! Stl
20 keys. 16 encoded. 4 external to *"** "l* Of
be assigned by user. Output 4 bit "*■ z lhs -
binary. Also, an EXCLUSIVE • 4 bit Mnary/haxadscJmal output plus strobe!
FEATURE. . . 4 leda display the • New! Improved design! Save* you time!
binary output TTIVCMOS • Keyboard pre-asMmblecJ onto PC board!
compatible, requires +5, „, „
12VDC. Complete kit] Nothing Cat No. 865009 Hexadecimal Kit $34.95
else to buy! With instructions. Cat. No. •SS010 Hexadecimal Wired $3 9.95
TTL'S
T iT«
, JSH740O
D5N7401
.OSN7403
GSN7404
'DSN740S
,C]SN7406
I1JSN7410
'DSN7411
11 SH 7413
DSN741C
'D8N7417
OSN7420
[QSN7421
IDSN7423
QSH7426
HSU 14 30
DSN7432
' D SN7437
DSN7438
IUSN7440
1 a 5N7443
DSK7445
| D SH7446
IHSN7447
DSN7448
USN7450
D SN7451
a SN74S4
DSN7460
D5H7462
DSN7470
DSN7472
DSN7473
I D SN7474
DSN7475
.DSN7476
DSN7480
a SN7483
DSH7486
IJSN74S8
QSN7490
□ SN7491
'J5N7492
OSN7493
OSN7495
DSN7496
O SN74100
DSN74107
DSN74109
DSN74113
DSN74121
OSN74I23
Li SN 74 126
□ SN74132
DSN74145
DSN741S1
DSN74153
DSN741S4
DSN74155
DSN74157
OSN74161
OSN74163
OSN74164
DSN74165
USN74166
DSN74173
DSH74174
OSN7417S
OSN74177
DSN74179
DSN74180
DSN74190
DSN74192
DSN74193
DSN74194
D5N74197
Low Power ICs*
Order By Cat. Ho. 883667 8. Type No.
Sale I D 74LS132
1 O74U00
> D 74LS02
>D 741.504
O 74LS08
74L510
Q 74LS11
a 74LS13
D 74LS14
D 74LS20
la 741.52 1
,0 74LS22
1 a 74L527
I'd 74LS30
x-D 74LS32
> D 74LS37
JD 74LS38
! O 74LS42
1 74LS47
D 74L574
D 74LS90
D 74L592
LI 74L593
in 74LS109
lO 74L9112
> n 74LS1 13
HtltltllllRI
74L5138
D 74LS139
Q 74LS151
D 74LS153
D 74LS1SS
D 74LS160
D 74LS161
O 74LS162
D 74LS163
D 74LS168
D 74LS169
□ 74LS173
a 74LS174
D 74LS190
74LS191
a 74LS192
D 74LS193
D 74L5195
D 74L5196
D 74L5197
D 74LS257
D 74LS258
74LS266
74LS366
O 74LS3S8
D 74U390
D CD40O0
D CD4001
D CD4O02
D CD4006
D CD40O7
D CD4008
D CD4009
D CD4010
O CD4011
D CD4012
OCD4013
O CD4014
a CD4015
D CD4016
D CD4017
D CD4018
D CD4019
D CD4020
n CD4021
CI CD4022
********* LINEARS********t
aljti301V,H
O LM307V,N,H
DLM308V
D LM309K
,DLM311V
. .DLM320T-6
I D LM340T4
t D LM340T-12
1DLM340T.15
■DLM340K-3
'DLM340K.12
'C1LM340K-15
D LM340K-18
O1M340K-24
D LM322N
. OLM324N
.(DLM339N
1DLM377N
POLY PAKS "CHIPS" AWAY
1C AND CRYSTAL PRICES!
Order by Cat. No. BS404S and Type No.
DICM7205
L1AY3-85001
DAY 5-9 100
DAY5-9200
DMM5330
a 8038
Stop'
6 TV
Came* _
Telephone Dialer _
Repertory Dialer _
4V, DlBltDVM
Volt Control Osc .
UKR2370-139 BCD Encoder ROM _
OKR2176-ST ASCII Encoder Rom _
D11C90DC 650MHE Preacaler _
350MHI Prescaaar _
Touch Ton Chip -
□ 95MMDC
DMC14410
DMK2002P Char Gen. (aim 2513)
D 72078/7208 Fraq. Counter pair _
O ICM7107 3 '. Digit DVM/DMM_
DMM9369
03.S79MHI
D l.OOMHl
D3U768MHZ
GULN230O
DHC4195
DTVR20O0
60Hz tlmebeee IC .
Tknebas. Crystal _
Touchtona Crystal -
Stopwatch Crystal .
._ tejV
rllth Power 723 Volt Rac
Dual 5 Volt Trackln,
Sale
. $14.95
9.95
_ 12.95
_ 9.9S
4.95
. 4.95
_ 6.95
■„ 14.95
_ 14.95
8.88
_ 6.9S
. 3.95
.. 24,95
_ 12.50
_ 1.95
_ 1.95
. 5.9S
4.95
1.19
2.95
.59
(■MOS
Order By Cat. No.
8S2320 & Type No.
$ .25
.25
.25
1.20
-25
120
.59
.59
1.20
.45
1.20
1.20
.35
1.25
1.25
1.25
O CD4023
.25
□ CD4024
.90
D CD4025
.25
D CD4027
.49
D CD4028
1.10
D CD4029
1.20
□ CD4030
.45
D CD4032
.75
a CD403S
140
CD4040
140
□ CD4041
.99
D CD4042
.89
a CD4044
.99
D CD4046
1.50
D CD4047
2.50
D CD4049
.45
D CD4053
.89
D CD4066
.90
D CD4071
.25
D CD4072
.39
D CD4077
.69
S1UCON POWER
STUD RECTIFIERS!
Order by Cat. No. Amperage and voltage.
SO AMP 2S0 AMP
(1169727) (K8S685)
12 AMP
PIV (X8I727)
□ 50 5 .29
□100 .36
n 200 AS
a 400 .61
u 600 .79
□ 800 .90
"ȣ BRIDGE RECTIFIERS!
2 AMP 6 AMP 10 AMP 25 AMP
PIV (MS1346) (DBS2456) (U8S2447) (1)852273)
o 50
□ 100
□ 200
a 400
.58
.69
.69
.89
.99
1.19
1.25
$ 88
.99
1.19
1A0
1X9
1.95
2.25
S1.05
1.15
1.29
1.79
1.95
Z2B
2.50
S1.20
1.2S
1.95
2.95
3.95
4.95
5.50
Or.r by Cat. No. Amperage and Voltage
MIX-N-MATCHowas $16.88
DUAL
POWER
SUPPLIES
• 1 Amp each voltage!
2 Amp* total!
A new concept in power rnipply
tlesiirn. Chooae from any one of
four popular poeittvc and
regulators and large heat sinks.
Pita easily into gadget boxes or
cabinet of your own design.
Rosy to assemble with step-
•Jat. NO. Sale hystep instructions. (Includes
D8S3995 +5 -5 $16.68 PC board, transformers, line
D 853996 +5 -12 17.B8 cortl, capacitors, rectifiers, hoot
D8S3999 +12-12 18.88 sinksnmlh'warcl.Complctckit.
D 854003 +15 -15 1938 nothing else to buy. Wt. 10 lbs.
COMPUTER
GRADE
a 8,000
□ 13.000
■CAPACITORS? itooo
J Order by Cat No. ° 22,000
Z IBH2 and value! ° «.™
Sale a
S2.7S .
2.75 J
12 150 ■
75 3.95 ■
30 250 ■
30 3.95 ■
50
DISCRETE LED'S
$ .75
1.10
1.35
1.75
2.25
2.75
54.95
6.50
750
850
1950
1150
DIP SWITCHES
_ Cat. No. switches Seta
Q •• 3668 2 $.77
D 8S 366S 3 .88
U as 3021 4 .09
O 8S 3671 e 1.29
EECO 10-POSITION BCD
THUMBWHEEL SWITCH
1-2-4-8 BCD encoding! „ .
PoBitions labeled 0-7, F. L. » 'or
(K coded for S. L coded for 94.
'.'I. White numerals on 8
blnck bnekground. Eeco 800 I
Buries. iy 4 x IV* x V a " -
Cat. No. 8S384Q
$1.49
6 for $1.19
«_i i iu ■ Cat. No. Description Similar to
Order In multiples „ (82135 Jumbo Red MV5053
of 6 of each type! a 85 1944 Jumbo Yellow
□ 8S2136 Jumbo Green
DJUMBO 34" h a 862785 Medium Red
riMFnillM 94" ° 8S2788 Medium Green
i jmr-uium ^4 D ,,2,3, Mh . r0 B ,d
D MICRO .21"n8S1948 Micro Yellow
(TO-18) t: 852140 Micro Green
XCS56Y
XC556G
XC22
XC22G
XC209
XC209Y
XC290G
wCwtm rfc"J*T latJat ffR A A A WMWwtmm mwTltWwrFlfltyttrm A AAdV A
I "RED" LED READOUTS!
a. low a. 20C each
Description
Cat. No.
o 851890
11 851503
o 851273
□ 8S3093
1 8S3161
o 8S3512
□ SS2949
O 8S2950
n 6S34S3
,n 852485
-J 852256
'Common Anode
MAN-3
MANX-
MAN 1"
MAN-72 equal*
MAN-74 eoual"
FND369"
FND500'
FND507-
727-Dual"
727-Oua! -
747*
"Common Cathode
5 lor 51. 00 J
2 for $1.19
51.00 J
SI. 19 ♦
$1.19
S1.00
$150
$150
$250
$250
$155
*********************% A*^s^*-^r - A" A A ***
COMPUTER GRAPHICS 2ior$s.
• Four 100K potil Wt. 10 01.
• Chrom* hand* and knob! Cat No. I53808A
,\ BOXER FAN
Audible N»>se H <•> •■■ u(e ,
bearinga rated for liVf^.tion.
Perfectforcooling
MOTHERBOARD
EDGE CONNECTOR
106 pins (S3 each side).
r~] Uee with IMSAI & ALTAJRI
1 — ' 0.12S" pin ctra, eoldplsted
_ -^ _— Va" wire wrap leads. Open
•P2.5U endB - nt wlde FC baaxda.
8 oun.Cat. No. .113987
IC SOCKETS
as,awai!l7$* a -
• Low profile, »oldar tall.
Cat. No. Description Sale
□ 8S2123 8 pin minldlp % .17
D 8S110B 14 pin dip .19
16 pin dip .22
18 pin dip .25
14 pin Wire Wrap* .29
16 pin Wire Wrap* .36
24 pin MSI .59
28 pin MSI .59
40 pin LSI .99
■Gold Plated
□ 651309
□ 8S337B
a 8S5265
D8S5266
D 8S3886
[J8S3837
a 863802
GIANT SALE! MICRO-MINI Cat. No. Contact* Sale
rOGCLE SWITCHES. nas4036 spdt sue
• 3A, 125VAC contact* or better
e Complete with mounting hnrd ware!
D8S5085 SPDT* 1.39
DDOClDGDat ]
Cond.
□ 20
□ 26
a 34
□ 40
Sale
8K. $1.98
6 ft. $1.98
5 ft. $1.98
4 ft. $1.96
RIBBON CABLE
AT THIN PRICES
• Ultra-flat! • 26 AWGE
e Single color! Indexed!
Order by Cat. No. 6S3939 and conductors
imnmrr^rrririmrrrTT^^ ""in nrmrr
I«bJ5 a " twist ' S^^'WiW'
CABLE D c,t N °' * s3e80 ** "** 2 "• $19B
10 AMP POWER TAB SCR'S,
TRIACS,QUADRACS; CatKo "'V, »*il
SCR'S 851730 a 100 59
Order by Cat. No. TRIACS H1448 a 200 58
and Voltage QIMDRAC5 8(1590
; TRANSFORMER
SALE
^o^>
* 110VAC Primaries s a u. ■
Cat. No. Output V. Amps Each ■
66 3399 G.3V SOOma Metal encased S1.98 ■
88 3814 6.3V 1A Open frame 62.49 ■
68 3412 12V 300ma Open frame $1.96 pj
1N4000 Epoxy Rectifiers
ventillation.
•"P?!'". * more T-BUde
1M4002
1N4003
1N4004
1M4005
1N4006
1N4O07
Volts
50
100
200
400
800
800
1000
Sale
10 lor
10 lor
10 for
10 for
10 for
10 for
10 for
159
WRITE
FOR
FEATURING:
• Computer Components
. e Over 400 Assortments!
85 * Digital Clocks, DPM'a,
and Stopwatches!
e HI-FI Stereos-Speakers
• Solar Energy! Semi's!
POLY PAKS 1978
CATALOG
1.49 a Teat Equipment!
a Fiber Optical PluaMore n' Morel
45) COPYRIGHT 1978 - POLY PAKS INC
Circle 303 on inquiry card.
Term*: Add postage Rated : net 30
Phone : Wakefield, Mass. (617) 245-3829
Retail: 16-18 Del Carmine St.. Wakefield,
MINIMUM ORDER — $6.00
POLY PAKS
P.O. BOX 942 -S8
LYNNFIELD.MA-
IZIP 1 940bbbbbbbbb1
BYTE August 1978 203
WE SHIP FROM STOCK
TELETYPE MODEL 43
Only $985
300 baud, full ASCII character set, 132
column width, 30 cps, quiet, light-weight,
dependable. With RS 232 $1085
TECHNICO 9900 16 BIT COMPUTER KIT S299
RCA VIP KIT $230
EX-150 ELECTRONICS EXPERIMENT KIT S65
HAZELTINE 1500 $1045
HA2ELTINE 1500 KIT S895
HAZELTINE 1510 $1165
To order: Check, money order, major credit cards.
$4 shipping. NYC residents add 8% tax.
We have no reader inquiry number.
Please write or phone.
OWENS ASSOCIATES, DEPT. B-A
147 NORWOOD AVENUE
STATEN ISLAND, NEW YORK 10304
Day, Evening, Weekend Calls Welcome!
(212) 448-6283 (212) 448-6298
Apple II
Computers
available at
Computer Components
of Orange County
Available Now
Bob Bishop's Speech Synthesizer
Program for APPLE II
. . . only $19.95
no special hardware needed
• Send for our
Software list.
• Sign up for free
Apple II workshops.
6791 Westminster Ave.
Westminster, CA 92683
714-898-8330
eded
m
NEW SURPLUS PRINTER
Okidata - CP 110 - Friction Feed
Un Used, in O.E.M. Factory Cartons.
• 5x7 Impact Dot Matrix
• 80 Char/Line
• 64 Char ASCII
• 110 Char/Sec.
• 66 Lines/Min.
• Accepts 814"
Roll paper
Includes - Power Supply, Built in Selftest,
Parallel Interface, Line Buffer and Cables.
Housed in a three piece plastic cabinet with
all control electronics. Retail for over $1,100
Our Price: 1 ea. $650 10 up $600 ea.
Operating Manual Included.
Service Manual $20 Supplies Limited
Shipped Freight Collect. Send Check or M.O.
Sorry No Warranty Available at these Prices
INTERNATIONAL ELECTRONICS
EQUIPMENT CORP.
P.O. Box 522542. Miami, Florida 33152
Circle 64 on inquiry card.
Circle 172 on inquiry card.
IS YOUR COMPUTER
DULL?
Is he hung up in the same old
loop?
Is he sorting and searching his
life away?
Turn him on to computer
humor!
Bring out his hidden talents
with a sophisticated selection
of BAUDY JOKES AND
BYTING WIT!
Let your computer comic de-
light your friends with a dazz-
ling display of wit and whimsy!
Your computer will have the
last laugh!
Shift $5.95 into our register for:
LAF-TRAK 1 (on cassette)
Micro-Madness
P. O. Box 2250
Pasadena, Ca. 91105
Specify computer or interface
type and memory size.
KIM KOMPUTER HEADQUAHTEHS
• Send for tree KIM Katelog.
PAL COMPUTERS USING 6502 SYSTEMI
• ORDER OUR PAL TECHNICAL MANUAL ($7.25
Postpaid) which fully describes the KIM Bui and indivi-
dual Boards in the PAL system.
INDUSTRIAL QUALITY
MICROPROCESSOR CARD KITS
All +5V only, std 4.5 x 6.5. 22/44 edge conn.
• 4 K RAM $79.95 • 2 K PROM $ 79.95
• Molherboa'd $39.95 • 4 K PROM $129.95
• Card Cage S20.0O • Digital I/O $ 59.95
• Keyboard/Display £89.95 • Cassette Interface $ 37.95
• 6802/6502 CPU BOARD $99.95
(SHOWN BELOWI
• BARE BOARDS. ENCLOSURES. FIRMWARE. ETC.
SEND $3.70 FOR TECHNICAL MANUAL (INFOR-
MATION ON ALL ABOVE INDUSTRIAL BOARDS!
SILVER SPUR
Electronic Communications Co.
P. O. Box 365. Chino, CA 91710
or Visit Retail Store:
13552 Centre! Avenue
i 171416279366
1 VISA
1 Maslercharge
> Calif Residents Add
6% Sales Tax
niiuiijjiiiiijiiiiir
PET SCHEMATICS
Anorhur First From "PET-SHACK".
For only $34.95 you get:
24" x 30" schematic of the CPU board, plus overc.zed
schematic: of the Video Monitor and Tape Recorder, plui
complete ParB Layout-all Accurately and Painstakingly
drawn to the Minutest detail.
PET ROM ROUTINES
Another Breakthrough From "PET-SHACK",
Complete Assembly Listings of all 7 ROMs, plus identi-
fied subroutine entry points; Video Monitor, Keyboard
Routine, Tape Record and PlaybKk Routine, Real Time
Clock, etc.
To entice you we are also including our own Machine
Language Monitor program for your PET using the key-
board and video display. All this for only $19.95,
SA TISFACTION GUARANTEED.
You can have the Monitor program on cassette for only
$9.95 extra.
Send check, money order, or Master Charge or VISA
number and expiration date to:
PET-SHACK Software House
Marketing and Research Co.
P. O. Box 966
Mishawaka, IN 46544
Circle 223 on inquiry card.
Circle 317 on inquiry card.
Circle 289 on inquiry card.
IT'S A GREAT BIG COMPUTER WORLD
But You Only Need
*-THE COMPUTER CORIMER :
•SOL - A New Dawn is Here!
• COMMODORE PET & KIM
•NORTHSTAR HORIZON
• IMSAt VDP-B0
• Memories & I/O Boards -
•Computer Book Service _
• Magnetic Tapes & Disks _
•Full Line of Magazines _
• Brain Games & Puzzles _
•Workshops & Club Information _
Visit THE COMPUTER CORNER for ~
all your computer needs. Stop in and
browse — you'll like our personal service.
THE COMPUTER CORNER
White- Plains Mall - Upper Level
200 Hamilton Avenue ™
White Plains, New York 10601 _
Teh (914) WHY -DATA
Ample Parkin
10-6 Dailv & Saturday
jjf . 1 0-6 Dailv & Saturday . >
JC/ 10-9 Thursday \ >W
SALE SALE SALE SALE SALE SALE
* •SUPPLIES' •SYSTEMS"SOFTWARE- "PERIPHERALS**
8" FLEXIBLE DISKS
53428 IBM 3740V S/32. Shugatt. Per Sd S 3.90
Perlec. Calcomp (send for catalog)
53803 32 "Hard Sector' 1 . Alt an. Shugirt.
Pertec, Par Sci, Calcomp & more I 3.90
5W" FLEXIBLE DISKS
54256 Single (0 1 ) Sector $ 3-75
54257 Ten (10) Sector $ 3.75
54258 Siiteen (16) Sector S 3.75
TELETYPE MODEL 43
4320/UVA Keyboard. Pin Feed, TTL $1000.00
4310AAA Receive only. Pin Feed, TTL $ 90O.00
TP430035 Model 43 Ribbon $ 5.25
PP43 A01 Model 43 Paper oin or trie, 3M $ 12.75
SBCS1000 BUSINESS SYSTEM microcomputer 32K
2 disk drivel, video terminal, printer,
cabinet/desk, DOS. BASIC. SOFTWARE I600O 00
IECC1000 EDUCATOR SYSTEM microcomputer
32K. disk drive, video terminal, printer
cabinet/desk. DOS. BASIC. SOFTWARE J560O 00
S ft D COMPUTER TECHNOLOGY 24 HOURS/7 DAYS
P.O. Box 1283 (518)463.1091
ALBANY. NY 12201
n
r
TRS80
9h§ GmtiMtfatik
* presents "
RECIPES (programs) on CASSETTE
TAPES for your hungry TRS 80 — with
lots of graphics!!
All programs written to run on your TRS
80 — Level I (4k or more RAM).
Free COOKBOOK (catalog) of cassettes
with other recipes (programs) included.
CASSETTE 8010: UFO Battle*
Checkbook • Draw Poker • Pile High •
Poker Dice • Snoopy (graphic).
CASSETTE 8020: Monthly Minder • Slot
Machine • Dart Throw • Venus Touch-
down • Number Guess • Tic Tac Toe
$ 9.SO per cassette, $18.00 for both.
Send Check or Money Order to
THE COMPUTER PANTRY
2224 -C Old Middlefield Way
Mountain View, CA 94043
(415)964-4175
The Pantry pays postage and tax 11 Prompl Delivery
Circle 65 on inquiry card.
Circle 309 on inquiry card.
Circle 77 on inquiry card.
Circle 353 on inquiry card.
$199.95
AS IS
IBM® Selectric-Based
I/O Writers
Excellent Hobby Printers
$249.95
WORKING &
CLEANED
Series 72/731
Heavy Duty
8 1 / 2 " Platten
All Solenoids
Original Documentation
While Supply Lasts
SUPER SALE
These terminals are from a large airline reservation
system. They are heavy duty and were under continuous
maintenance. The units have been in storage. We make
every effort to ensure that all essential parts are included.
Most work when plugged in. No warranties are given or
implied.
Conversion Kits.
1 . Conversion instructons, P C board for printer only using soft-
ware approach $59.95
2. I/O kit makes the unit into a conversational terminal. Instruc-
tions, P C board, components for a parallel or RS232 interface.
Will work with any IBM terminal $249.95
3. Completely converted unit and assembled interface for I/O us-
ing kit $999.95
Card reader by HP with RS232 interface $299.95
Printec line printers, parallel interface $1500.00
Honeywell 516 &316 mini's, make offer. Cables, used 11
conductor, 100 ft with connectors $9.99
Electronic parts and circuit boards 1/4 lb bag $4.99
Check, Money Order, Cash. Personal checks require 3
weeks to clear. No COD's. Units shipped UPS or PP
collect. Prices Net FOB Tulsa
SUPER SURPLUS SALES
P.O. BOX 45944 TULSA, OK 74145 1-918-622-1058
4S01 STATIC, m Id OUT 4096*1 M-MOS RAH
QINCKAL
DESCRIPTION
Part Number 4801
is a 4K semicon-
duel of random
acceis memory . *
organized as 4096 l-bit words. II is hilly static and
needs noclock or relresh pulses. II requires a
single - 5 volt power supply and is fully TTL com-
patible on input and output lines The *80i is
packaged in a convenient 18 pm dual-in-line
package
FEATURES
■ Single -SV Power Supply
■ 4Kii Organization
■ Replaces 4 1024x1 Static RAMs
■ Completely Static-No Clocks or Relresh
■ 18Pm Package
■ Acceta/Cycle Times 600 neec ma>
• 2SO mw Typical Operating Power
e Separate Oata In and Data Out
■ TTL Compatible I/O
a Three Slate Outputs
e Data Bus Compatible I/O Function
4804 STATIC, TTl IN OUT 1024i4 K-Mti RAM
OCMEUL
DESCRIPTION
Pan Number 4604
is a 4K semicon-
duclor random
access memory
organized as 1024 4- bil words, It is fully static and
needs no clock or relresh pulses. It requirea a
single S vol! power supply and is fully TTL com-
patible on input and output lines The 4004 is
packaged in a convenient IB pin dualm-line
package
FEATURES
■ Single - 5V Power Supply
e IKM Organization
> Replaces * 1024* i Static RAMs
■ Completely Static-No Clocks or Refresh
e 18 Pm Package
• Access/Cycle Times 600 nsec max
■ 250 mw Typical Operating Power
e Common I/O Bus
■ TTL Compatible I/O
■ Three Stale Outputs
4801 or 4804 4K RAM's
8/J60.00 16/5100.00
7608 North 27th Avenu*
PnoeniK. Amaru 85021
(60?) 9959352
10 AMP REGULATORS
78P05
OEHERAL DEtCflimOM - The „A 70PO5 is a 3-lermina. positive 5 V hybrid regulator
capable of delivering 10 A This device t| virtually blowout proof and contain* all the
protection features inherent in monolithic regulators such aa Internal short-circuit
current limiting and thermal -overload protection The ».A78PO£ is packaged in e
hermetically sealed TO-3 providing 50 W it 25'C case The hybrid consists of a
monolithic control chip driving a rugged Mesa tranuator
The high output current is achieved through new design technique without sacrificing
the regulation characteristic! of the controlling elements The same process is
employed m the construction o* the 10 A reguleto- . j provide the seme high reliability
Obtained in the »A7«H05 5 A regulator
COMWCTIOM DHAOIIAMI
TOO PACXAOf
(TOPVIEWl
10 A OUTPUT CUHRIHT
tHTtRMAL TMeeaaJU. OVMLOAO PWOTf CTIOM
tHTEPlMAL SHOett-CMICUtT CUeMNT UMfT
LOW OftOf-OUT VOLTAOC 1 J V AT IS A
M W eowepj OtMft>AT10«
ptM-ron-atN compatski with tm* ^Artm*. ^tatim and mm
tTin. too PACiuat
78P05SC SI2.95
5p.es 60
HI POWER RECHARGEABLE CELL
Brand new Gate* gelled electrolyte lead-acid energy call. 2 Volts, 5
Amp Hour I Make high power stand-by supply for portable gear or
computer systems.
GGC-0205 $5.35, 4/S27.00
MULTI-CHANNEL 8 BIT A/D CONVERTER
Foirchilds' new 6 channel anolog-to digital converter has a lot going
for it. Full scale correction capabilities, ratiometric conversion and
wide input dynamic range.
Micro-processor compatible, it combines the multiplexer, decoder and
sample-and-hold functions with converter to save board space and
eliminate external parts. It provides 8 bit, + i LSB conversion in 300
uSec featuring auto-zero ond dynamic range all the way to ground.
UA9708 In 16 pin plastic DIP J7.95I
INTEGRATED TONE RECEIVER
MK5102(N)-5
FEATURES
O Detects all 16 standard DTMF digits
D Requires minimum external parts count tor
minimum system cost
a Uses inexpensive 3.579545 MHz crystal for
reference
G Digital counter detection with period averaging
insures minimum false response
D 16-pin package for high system dei sitv
O Single supply 5 Volts: 10%
U Output in either 4-bit binary code or dual 2-bit
row/column code
n Latched outputs
DESCRIPTION
The MK5102 is a monolithic integrated circuit
fabricated using the complementary-symmetry MOS
(CMOS) process. Using an inexpensive 3.57954S MHz
television colorburst crystal for reference, the
MK5102 detects and decodes the 8 standard DTMF
frequencies used in telephone dialing. The require-
ment of only a tingle supply end its construction in a
16-pin package make the MK5102 ideal for appli-
cations requiring minimum size and external parti
count. DETECTION FREQUENCY
Low Group t
H>oh Group i
Row t ■ 697 Hz
Row? - 770 Hi
Row 3 - 852 Hr
Row 4 ' 941 Hr
Column 1 - 1200 Hi
Column 2- 1336 Hi
Column 3 • 1477 Hi
Column 4 ■ 1633 Hi
). NO M'l-t' #»ti C O.O. will r»
UPSC.O.O •uiMi» II ih sj„, ,
MKm ft iuoxk i la ch*ne* *hmui '
i»'"B(j'imi, oil 0' Hock on in <l«m, <(
MK5102N-5 $34.95
Specs 50
600 Ohm to 600 Ohm C.T. transformer $1.95
P. C. BOARD TERMINAL STRIP
Molded body encloses poslive screw activated clamp
which will accomodate wire sizes 14-30 AWG. Contacts
ond pins are solder plated copper. Pins are on .200
inch (5.08mM) for standard P. C. mounting. lOAmp
rating. Compare our prices before you buy.
fttiS, .cW— h net—AeiBB Men u
I C.x. a. ...O M..
4 pole TS-2504
8 pole TS-2508
1 2 pole TS-2512
Circle 381 on inquiry card.
BYTE August 1978 205
Unclassified Ads
MUST SELL: Heathkit H-8 & H-9 Terminal,
assembled and operational. H-8: 16 K program-
mable memory, serial-cassette 10, cables, case &
power supply. H-9: 12 x 80 characters, full cursor
control, etc. Includes all software and manuals.
Sell together or consider separately. $1400, ship-
ping paid in US. Charles W Wood, 215 N Carswell,
Whiteman AFB MO 65305. (8161 563-5094
nights or weekends.
WANTED: Printer, CRT terminal, and digital
cassette recorder. Printer should have upper and
lower case, ASCII code, RS-232 interface, type-
writer quality output such as Diablo, IBM, Qume
(no dot matrix), with or without keyboard; CRT
Terminal with 80 character line width, block mode
transmit, upper and lower case, RS-232; digital
cassette recorder capable of working with printer
or CRT terminal. Please indicate price, operating
features, and condition. Norman N Axel rod,
445 E 86th St, New York NY 10028.
FOR SALE: New Altair 8800b computer. Includes
16 K x 8 memory, audio cassette record interface,
serial 2SIO with 1 port, ASCII keyboard. Package
II assembler, editor, debug and 8 K BASIC
software by MITS, manuals. Ready to run. $1200
complete. Tl 743RO 30 CPS printer, $1000.
Ken Crandall, (415) 692-6693.
FOR SALE: Friden Flexowriter with attached 8
level tape punch and tape reader. The Flexowriter
and punch both have independent code and binary
modes. The Flexowriter has a row of control
switches which include single step read, regener-
ation, delete and stop codes. The shift key shifts
to a special character set which includes square
root, delta, rub out and others. The Flexowriter
has eight resettable tabs and is in good working
condition. The schematics, modification sheets,
specification sheets, code chart and metal table
are all included. $200 or best offer plus shipping.
Will trade. Anthony Masterson, 3812 Stratford,
Dallas TX 75205.
FOR SALE: 16 K M6800 system of SwTPC boards
and AC30 cassette interface and surplus keyboard.
Includes Microware 16 task ROM, ACIA and PIA,
editor, assembler, 8 K BASIC and full documen-
tation. Excellent appearance and working order.
Will sacrifice for S600 and deliver in New England.
Robert Boyd, Woodlawn Au, Kennebunkport ME
04046.
WANTED: Complete documentation for VIA-
TRON, Computer Tape Recorder (Model 5002
9 track). Must include schematics and parts list for
unit and model 129000-00 power supply. R M
Shectman, 14606 Larchmere Blvd. Shaker His
OH 44120.
FOR SALE: Ohio Scientific OSI 430B Super 10
board, fully populated; A to D, D to A, Multiplex,
cassette interface (1200 baud KC) serial IO parallel
10 etc. Brand new, all ICs in sockets. Cost $399
new, sell for $275. Joe Ruby, 6057 Beck Av, N
Hollywood CA 91606, (213) 985-1519.
NEW UNCLASSIFIED POLICY
Readers who have equipment, software or other items
to buy. sell or swap should send in a clearly typed notice
to that affect. To be considered for publication, an adver-
tisement must be clearly noncommercial, typed double
spaced on plain white paper, contain SO words or less, and
include complete name and address information.
These notices are free qf charge and will be printed one
time only on a space available basis. Notices can be ac-
cepted from individuals or bona fide computer users clubs
only. We can engage in no correspondence on these and
your confirmation of placement is appearance in an issue of
BYTE.
Please note that it may take three or four months for on
ad to appear in the magaiine.*
FOR SALE: Motorola 6800 based d-2 MPU kit
complete in unopened package. Includes keyboard
and display, monitor program, 378 bytes pro-
grammable memory, serial and parallel IO ports.
Everything you need except the 5 V 2 A power
supply to get started in MPUs. Sell for $170, kit
lists for $235. Steve Kay, 51 Tidewater Ln, Willing-
bor NJ 08046, (609) 877-1345.
SACRIFICE: 8 K 8080A system six parallel IO
ports (add two chips for three more PIOs and
serial), 3 K PROM board (w/o 2708), 2-4 K 450
ns low power static programmable memory, TVT-3
terminal with cursor control, UART brd, 2 K pro-
grammable memory board. Hall effect ASCI I
keyboard, HITS audio cassette interface. AM
boards new, unused, sockets for chips, most boards
assembled. 5 A supply, edge connectors and card
guides (extra included), case, documentation.
Bonus 2-60 chip ground plane wire wrap proto
boards with 96 gold plated wire wrap sockets.
Sacrifice at fraction of cost $675 (sent UPS).
Write for information, David Krivoshik, 18
Newcomb, Elizabeth NJ 07202.
FOR SALE: lomec disk drive with single remov-
able 1 M byte platter, with power supply, rack and
manual. Also: CDC 300 lines per minute drum
printer with manual. No interfaces available.
Machines sold as is, neither have been used for
over 3 years. Asking $1,000 each. Chuck Gahan,
12781 Taylor St, Garden Grove CA 92645.
WANTED: Boards for 8008 computer and manual
for Mark 8. I hope to find someone who never
finisheda Mark 8 or MOD 8 and will sell cheaply.
Larry Bates, POB 664, US 25, Skyland NC 28776.
FOR SALE: Model 400 M6800 processor (OSI)
with all documentation, buss holds 8 boards, 4 K
memory board (3 K on board), and video board.
All for $150 or best offer. Tony Preston, 15151
Ripple Dr, Linden Ml 48451.
FOR SALE: Tarbell cassette interface board.
Assembled, checked at factory, with manual.
For price of kit only $120. E Tottle, 2993
Yorkway, Baltimore MD 21222.
FOR SALE: MITS Dual Disk System, 8800A with
heavy duty power supply, dual disk drive, 40 K
Seals memory, ADM-1 CRT, Okidata printer,
2SIO board, PROM board, disk boot loader on
PROM, ACR board. Best offer. J R Morrow,
6501 Harding Rd, E21, Nashville TN 37205,
(615) 329-1844 days, (615) 352-0599 evenings.
FOR SALE: Teletypes, ASR33s, one brand new
in box with manuals, located in Silicon Valley,
one used only 25 hours, located in Boston. $500
each or reasonable offer. If interested in either
one, send postcard to Ralph Guditz, POB 61266,
Sunnyvale CA 94088.
FOR SALE: Centronics 101 A with lower case
option, parallel Input, switch or software for
double width characters. Includes stand and paper
tray. $1200, you pay freight. Digital Group 8 K
memory boards 400 ns low power. Two at $200
each, I pay shipping. D L Fade, 729 Milam Bldg,
San Antonio TX 78205, (512) 222-0077 or (512)
690-0499.
FOR SALE: Heath H9 Video Terminal. New and
completely assembled, $500. Jim Ketcham, 57F
Sherwood Forest, Wappingers Falls NY 12590,
(914) 831-1709 evenings.
FOR SALE: One fully assembled and functioning
TDL ZPU Z-80 processor card, S250. Includes
operating manual and 1 K monitor. One fully
assembled Seals battery backup card with batteries,
S120. Contact James Stanley. =805, 4045 Link-
wood. Houston TX 77025, or call 1713) 792-4727.
WE NEED HELP! High school has a Sol System II
with 32 K and a video tape camera and cassette.
We would like to interface the two in order to
produce digitized computer portraits. Send infor-
mation or suggestions to Bill Games, Franklin HS,
Stockton CA 95205.
FOR SALE: RCA COSMAC VIP. Described in
August 1977 BYTE, page 30. Original cost $275
in kit form. Will sell for $200 complete in running
order. Albert G Shafer, 683 SW 7th St, Boca Raton
FL 33432, (305) 395-5633.
FOR SALE: BYTE volume 1, #1 to date, for
best offer. Good condition. Will pack securely
and ship insured. Also, complete Vtatron System
21 with manuals. Includes 9 inch B&W and 19
inch color video display, robot printer, two
cassette decks, all in good working order. George
Weiss, 4625 N Kedzie Av, Chicago IL 60625,
(312) 588-1885.
FOR SALE: Diablo Systems Model 31 disk drive
with Interdata controller. Disk drive is 100 percent
operational, controller needs some work. Full
documentation supplied for both drive and con-
troller. Best offer over $1200. Tom Olsen, 655
South Fairoaks Ave, Apt H206, Sunnyvale CA
94086, (408) 737-9353.
FOR SALE: Technical Design Labs Xitan Alpha 2
computer. Complete with ZPU, Z-16 (16 K static
low power programmable memory), SMB (System
monitor in ROM, 1200 bps cassette 10, two
serial IO ports, one parallel IO port), mother
board (eight slots, currently using three), power
supply, card rack, fan, case. Assembled, tested,
fully operational with 8 K BASIC, assembler,
text editor and text output processor supplied
on cassette. $1400 buys all, including Pioneer
CT 4141 cassette deck. An excellent starter
system. J Crowley, 2931 Queen Ln, Philadelphia
PA 19129, (215)842-1517.
FOR SALE: Assembled solid state music video
display and graphics board $125. ($25 under kit
pricel) Extender card with connector $9. Six slot
mother board (can be connected to other board
for expansion) with 4 connector, $25. Good for
small expandable system. Send SASE to Gary
Camp, 158 Pago Pago, Pomona CA 91768.
FOR SALE: TELETYPE Model 33 ASR, with
pedestal and GE acoustic coupler assembly. Com-
plete $400. Full set manuals available. Porta-com
Model PC8110, standard ASCII complete, with
internal acoustic coupler and manual cost $900,
selling for $400. Ron Newland, 206 S Highwood
Av, Glen Rock NJ 07452, (201 ) 444-6872.
FOR SALE: Sylvanhills DFT-2 flat bed plotter
with power supply, 17 by 22 inch drawing area,
mounted on drafting table, could be shipped
unmounted. Also a Matrix video S-100 bus board
ALT 256-2, high density graphics with a software
package for character generation. All items almost
new. Laddie Chapman, 5715 Klump Av, N
Hollywood CA 91601, (213) 985-5715.
FOR SALE: TRS-80 Microprocessor with tape unit
and RF modulator for use with any TV. Brand
new, still under factory warranty. Only $499 plus
shipping. Reason for sale: moving up to more
powerful system. Write R Lufkin, Star Rt 1, POB
4, Charlottesville VA 22901 .
MEDICAL SOFTWARE FOR MICROPRO-
CESSORS: Now available, patient history, health
risk profile, differential diagnosis generators,
clinical laboratory data analysis, symptom, disease
and drug cross-indexing, bibliography-reference
retrieval and others. Write R Lufkin, Star Rt 1,
POB 4, Charlottesville VA 22901 .
HELP: I couldn't resist the price so I bought it.
Model-140 Eldorado computer, 8 K core. Selectric
typewriter. Desk console. Three magnetic tape
cassette drives. Programs and compilers. Includes
a whole business accounting package. I need to
find schematics in case it breaks. G Kilthau, 7142
Tours, Houston TX 77036.
FOR SALE: 2 Digital Group 8 K memory boards.
Uses 2102-1 chips. Professionally assembled and
running perfectly for three months. $200 each.
L Langrehr, 2069 N Humboldt Blvd. Chicago IL
60647, or call (312) 262-1600 X491.
206 BYTE August 1978
VISIBLE
OR
INFRA RED
USED FOR CHARACTER
RECOGNITION FOR
COMPUTERS WITH
EXTERNAL CIRCUITS
MAY BE USED IN
A VACUUM,
UNDER WATER,
HIGH ALTITUDE
MAGNETIC ENVIRONMENT
BECAUSE THERE^ IS NO
HIGH VOLTAGE OR
MAGNETIC DEFLECTION
MINATURE SOLID STATE
202 VIDEO CAMERA KIT
FEATURING A . 100 x 100 BIT SELF SCANNING CHARGED COUPLED DEVICE
THIS UNIQUE UPDATED CAMERA KIT
FEATURES THE FAIRCHILD CCD 202C IMAGE SENSOR
ADVANTAGES
• IN THE FUTURE
WE WILL SUPPLY A
COMPUTER VIDEO INTERFACE CARD
• All clock voltages operate at 6V
reguiring no adjustments
• Higher video output signal
• We supply the power board, so only
a 5V 1 Amp power source is needed
• The circuitry has been simplified for
easier assembly
• Two level TTL output is supplied for
interfacing
FEATURES
• Sensitive to Infra red
as well as visible light
• May be used for IR surveillance
with an IR light source
• Excellent for standard
surveillance work, because
of light weight and small size
• All components mounted on
parallel 3 3 /4"x6 1 /2" single
sided boards
• Total weight under 1 lb.
SURPLUS CENTRONICS PRINTERS
101 - $ 1,150
*
34900
KIT
306
900
We supply all semiconductors,
boards, data sheets, diagrams.
Add $75. ° tO aSSemble and teSt resistors and capacitors, and
8MM lens.
Add $2.00 Postage and Handling sorry we do not supply the
case, batteries and 5V supply.
UNIVERSAL 4Kx8 MEMORY BOARD I
$69.95
32-2102-1 fully buffered, 16 address lines, on
board decoding for any 4 of 64 pages, standard
44 pin buss, may be used with F-8 & KIM
PRINTED CIRCUIT BOARD
7WATTLD 65 LASER DIODE I R Sa95
EXPANDABLE F8 CPU BOARD KIT
$99.00
featuring Fairbug. PSU 1 K-ot static ram, RS 232
Interface, documentation, 64 BYTE regis. er
C/MOS (DtODE CLAMPED)
4001 -
400? -
4006-
4007-
4009-
4010 -
4013 -
4013 -
4015-
18 4016-
.18 4017 -
.95 4018 -
.18 4019-
.37 4020 -
37 4021 -
.18 4032-
,18 4033 -
.29 4024 -
.74 4025-
.29 4027-
.90 4028 -
90 4039 -
37 4030 -
90 4035 -
90 4042 -
.90 4046 -
18 4047 -
.75 4049-
18 4050-
.37 4053-
.80 4055-
.95 4066-
.33 4071 -
.97 4076-
.65 451S-
1.35 74C10
1.50 74C193 95
370S-8K EPROM 1490 nl)
2523 STATIC SHIFT RES
2613 CHARACTER GEN
351 8 HEX 32 BIT .n
2102-1 (450ni) „
31L02-1 (4BOn»l „...
MM6270-4KXI OYN
MK 40O8P ._ _ „
21 01-1 254 x 4 STATIC
21 11-1-256 h 4 STATIC
2112-1-260 * 4 STATIC
31 14-4K STATIC RAM 1450ml
6380/31078 4K DVH.AMIC RAM ,
TMS4O50L
B204-4K " RQM
S2S23
AY-6-1013UART ..
S 3.46
i i.iii.
S 2.46
S 3.46
$ 2. 76
S 850
S 4.26
* 3.96
S 4.86
2N 3820 P FET ...
2N5457NFET . .
2N2646.UJT
ER 900 TRIGGER DIODES
2N'6Q28 PRQG UJT
S 45
$ .45
$ .45
SI 00
S (if)
MINIATURE MULTI-TURN TRIM POTS
100, IK, 2K. 5K, 10K, 25K, 50K, 100K,
200K, 500K, 1 Mag, 2Meg, $.75 each 3/S2.00
CHARGED COUPLE DEVICES
CCD 321 AH2-S12 audio analog S.R $95.00
CCD 201C 100x100 Imago Senior $95.00
CCD 202C 100*100 Image Senior $145.00
VERIPAX PC BOARD S4.00
This board ii a 1/16"iing1a tided paper epoxy
board, 4X"x6W" DRILLED and ETCHED which
will hold up to 21 tingle 14 pin IC't or 8,16 or LSI
DIP IC't with buun for power supply connector.
FP 100PHOTO TRAMS S 50
RED, YELLOW, GREEN or AMBER
LARGE LED's.2" 6/S1.00
TIL-118OPT0-1S0LAT0R $ -75
M0LEX PINS 100/S1.00
1OOO7S8.00
10 WATT ZENERS 3.9, 4.7, 5.6, 8.2,
18,22, 100.150or 200V. ea. S .
1 WATT ZENERS: 3.3.4.7,5.6,9.1.10.
12.15, 18, or 22V 7/S1.00
MC6860 MODEM CHIP $9.95
MCM6571A 7 x 9 character gun ... $10.75
TRANSISTOR SPECIALS
2N6233-NPN SWITCHING POWER $
MRF-8004 a CB RF Translator NPN $
2N3772 NPN Si TO 3 $
2N1546 PNP GE TO-3 $
2N4908 PNP Si TO 3 S
2N6056 NPN Si TO-3 D;ntinf|ton S
2N5086 PNPSi TO-92 4/S
2N3137 NPN Si RF $
2N3919 NPN Si TO-3 RF S
2N1420 NPN Si TO 5 3/$
2N3767 NPN Si TO-66 S
2N2222 NPN S> TO-18 5/S
2N3055 NPN S» TO-3 S
2N3904 NPN Si TO 92 .... 5/S
2N3905 PNP Si TO-92 5'S
2N5296 NPN S< TO-220 . . . . S
2N6103 PNP Si TO-220 S
7N3G38 PNP Si TO 5 5/S
MPSA 13 NPN Si 4/$
1.95
1.60
1.00
.75
1.00
1,70
1.00
.86
1.50
1.00
.70
1.00
.60
1.00
Full Wave Bridges
1.30
1.75
DIP SOCKETS
fl PIN .17 24 PIN .35
14 PIN .20 28 PIN 40
16 PIN .22 40 PIN .60
18 PIN .25
SANKEN AUDIO POWER AMPS
Si 1010 G 10 WATTS $ 7.80
Si 1 020 G 20 WATTS St 5.70
Si 1050 G 50 WATTS $28.50
TANTULUM CAPACITORS
Circle 340 on inquiry card.
BYTE August 1978 207
Feadep Service
To get further information on the products advertised in BYTE, fill out the reader sen/ice card with your name and address. Then circle the
appropriate numbers for the advertisers you select from the list. Add a 13 cent stamp to the card, then drop it in the mail. Not only do you
gain information, but our advertisers are encouraged to use the marketplace provided by BYTE. This helps us bring you a bigger B YTE.
Inquiry No.
Page No.
Inquiry No.
Page No.
Inquiry No.
Page No.
1
4
6
7
8
9
10
12
11
14
15
*
20
17
25
18
19
30
31
29
32
33
34
35
38
37
36
39
40
43
45
50
51
62
64
65
70
71
75
74
76
76
77
79
80
91
95
100
AAA Chicago Computer Center 155
A-A-A-A Computer How's 196
Administrative Systems 107
AJA Software 114
ALTOS Computer Systems 19
American Digital Development 190
Anderson Jacobson 133
Anderson Jacobson 75
AP Products 126
Apparat Inc 196
Apple Computer 14
Apple Computer 15
Art-by-Computer 153
Artec Electronics 79
ATV Research 182
Atwood Enterprises 180
Axiom 5
Base II 57
Beckian Enterprises 180
Bit Basement 182
BITS 61
BITS 93
BITS 95
BITS 99
BITS 103
BITS 111
Bootstrap Enterprises 89
Buss 155
BYTE Back Issues 145
BYTE Bound Volumes 29
BYTE Wats Line 144
California Industrial 185
Canada Systems 135
Capitol Equipment Brokers 134
Central Data 43
Centronics 63
Chrislin Industries 190
Computer Age 196
Computer Components 204
Computer Corner 204
Computer Enterprises 124
Computer Factory 144
Computerland 49
Computer Mart of MA 190
Computer Mart of NJ 146
Computer Mart of PA 146
Computer Pantry 204
Contract Services Associates 145
Cromemco 1, 2
Digital Pathways 134
Digital Research (CA) 146
Digital Research (TX) 187
110 Dynabyte 83
115 Electrolabs 183
120 Electronic Control Technology 158
125 Electronic Systems 189
130 Electronics Warehouse 191
132 EMM/CMP 118
136 EMM/Semi Inc 158
133 Entelek196
140 Forethought Products 74
142 Functional Automation 190
148 GRT Corporation 31
149 GRT Corporation 138, 139
153 Hamilton Logic Systems 182
156 Hazeltine Corp 34, 35
160 Heath Company 17
170 Hobby World 179
171 Home Computer Centre 196
172 IEE Corporation 204
175 IMSAI 11
178 Innotronics 157
179 Integrand 131
180 Integrated Circuits Unlimited 193
183 International Data Sciences 157
185 International Data Systems 98
193 J & E Electronics 196
195 Jade Company 181
200 Jameco Electronics 194, 195
201 Jim-PakCIII
203 Kalin Associates 190
207 LMN Electronics 197
215 Logical Services 62
217 Manchester Equipment 182
219 Marinchip Systems 140
223 Micro-Madness 204
240 Microware 137
247 Mikos199
250 Mini Micro Mart 142
265 mpi 149
273 National Digital Diagnostic 190
275 National Multiplex 69
280 Netronics121
283 Newman Computer Exchange 120
285 North Star Computer 27, CIV
286 Northwest Microcomputing Sys 7
287 Northwest Microcomputing Sys 127
290 Ohio Scientific Instrument 20-23
291 Oliver Advanced Engineering 125
293 Osborne & Associates 81
* Owens Associates 204
294 Pacific Digital 135
296 Pacific Office Systems 199
297 Page Digital 188
298 PAIA Electronics 105
292 PanaVise119
288 PCE Electronics 182
299 Pentech Inc 182
301 PerCom Data 46
266 PerSci 87
267 Pers & Small Business Cmptr Show 108,
268 Personal Computing Co 196
302 Personal Computing '78 76, 77
289 Pet Shack Software House 204
312 Pharmassist 196
303 Poly Paks 203
304 Priority I 201
305 Processor Technology 8, 9, 10, 48
306 PRS Corp 55
307 Quest Electronics 188
308 Rondure Co 197
311 S-100 107
310 Scelbi 39
322 Scelbi/BYTE Primer 1 1 5
* Scientific Research 37, 59
309 S & D Computer Technology 204
313 Seattle Computer Products 100
316 Michael Shrayer Software 71
317 Silver Spur 204
320 Smoke Signal Broadcasting 73
330 Software Records 153
335 Solid State Music 47
340 Solid State Sales 207
350 Southwest Technical Products CM
354 Stirling Bekdorf 123
351 Structured Systems Group 13
353 Super Surplus Sales 205
356 Synchro Sound 44, 45
360 Tarbell Electronics 51
370 Technical Systems Consultants 85
372 Technico 101
371 Teletek 53
377 Transition Enterprises 182
376 TransNet Corp 60
379 Trenton State College 128
381 Tri-Tek 205
383 Ultra Violet Products 125
386 US Robotics 182
384 Video Spectrum Industries 129
378 Vamp 182
387 Wameco183
143 Whales 111
393 Wintek 149
395 Worldwide Electronics 196
400 Xitex136
*Correspond directly with company.
109
BCMB-
GYTE's Ongoing Mcnilcp Gcx
Article No. ARTICLE PAGE
1 Allen-Rossetti: On Building a Light-Seeking Robot Mechanism 24
2 Forsyth-Howard: Compilation and Pascal on Microprocessors 50
3 Nelson: Microprocessor Update: The Number Crunching Processor 64
4 Alpert: Pascal: A Structurally Strong Language 78
5 Penniman: Philadelphia's 179 Year Old Android 90
6 Williams: Antique Mechanical Computers, Part 2 96
7 Mundie: In Praise of Pascal 110
8 Bowles: Pascal versus COBOL 122
9 Weems: Designing Structured Programs 143
10 Ciarcia: Let Your Fingers Do the Talking 156
11 Hastings: JACPOT 166
12 Schwartz: Pascal versus BASIC 168
BOMB's Vacation
The Bomb Analysis for May 1978 BYTE
found Mark Gottlieb's "Hidden Line Sub-
routines for Three-Dimensional Plotting,"
page 49, receiving the highest score, with
Larry Weinstein's "A Programmable Char-
acter Generator, Part 1 : Hardware," page 79,
receiving second place. Since our pocket
calculator's batteries had run down and the
charger got misplaced, we'll omit the statis-
tical analysis this month. . .CH«
208 August 1978 © BYTE Publications Inc
im
electronic components
One-Stop
Component Center
ALABAMA
Mobile
ALASKA
Anchorage
ARIZONA
Flagstaff
Fountain Hills
Tempe
Sierra Vista
Yuma
CALIFORNIA
Bel I flower
Berkeley
Brea
Cypress
SI Monte
Fon tana
Fullerton
Glen dale
Lake Tahoe, South
Lancaster
Long Beach
Mission Viejo
Modesto
Mon terey
Oceanside
Palm dale
Palo Alto
Pasadena
Riverside
Sacramento
Sacramen to
Sacramento
San Bernardino
San Carlos
San Diego
San Diego
San Fernando
San Francisco
San Francisco
San Jose
San Luis Obispo
San Rafael
Santa Barbara
Santa Cruz
Santa Maria
Santa Monica
Sunnyvale
Torrance
Vallejo
Van Nuys
Ven tura
Walnut Creek
Westminster
Whit tier
COLORADO
Aurora
Steamboat Springs
CONNECTICUT
Bridgeport
FLORIDA
Ft. Lauderdale
Gainesville
Lakeland
Orlando
Tampa
Tampa
GEORGIA
A tlan ta
HAWAII
Aiea
Honolulu
IDAHO
Idaho Falls
ILLINOIS
Carbon dale
Evanston
Evans ton
Granite City
Grove land
Mount Prospect
Niles
Oak Park
Rock ford
Schaumburg
INDIANA
East Chicago
Hammond
IOWA
Clinton
Davenport
Indianola
KANSAS
Kansas City
AUTHORIZED DEALERS
Lafayette Radio Electronics
Electronics Corp. of Alaska
Jim's Audio & Stereo Repair
P & C Communications
Computerworld Inc.
B & S Electronics
Yuma Electronics
Earl's Hobby Shop
Al Lasher Electronics
Century Electronics
SCR Electronics
Kimball & Stark
Fontana Electronics
Orvac Electronics Inc.
Eagle Electronics
CalPine Electronics
Consumer Electronics
Scott Radio Supply Inc.
Tower Electronics Corp.
Computer Magic
Zackit
Electronic Center
Radio Shack A.S.C. Palmdale
Zack Electronics
Dow Radio Inc.
Computer Center
Heathkit Electronic Center
The Radio Place
Zackit
Inland Computer
& Electronics
J & H Outlet Store
Radio Shack A.S. C. Mira Mesa
Radio-Tronics Inc.
San Fernando Electronics
Zack Electronics
Zenith Distributing Corp.
Quement Electronics
Mid-State Electronic Supply
Electronics Plus
Lombard Electronics
Santa Cruz Electronics
Caps Electronics
Mission Control
Sunnyvale Electronics
SE Electronics
Zackit
Thrifty Electronics Supply
Lombard's Electronics Inc.
Byte Shop of Walnut Creek
JK Electronics
D & S Electronics
Com Co Electronics
Norm's TV & Electronics
Bridgeport Computer
KANSAS (Continued)
Manhattan Communications Specialties Ltd,
Wichita Amateur Radio Equipment Company
KENTUCKY
Lexington Radio-Electronic Equipment Co.
LOUISIANA
Baton Rouge
MARYLAND
Baltimore
Baltimore
La Vale
Rockvil/e
Silver Spring
Towson
Towson
MASSACHUSETTS
Med ford
North Adams
Waltham
Worcester
MICHIGAN
Ann Arbor
Flin t
Grand Rapids
Lansing
Mt. Clemens
Davis Electronics Supply Co.
Computer Workshop
of Baltimore
Everything Electronic
J & M Electronics
Computer Workshop
Computers Etc.
Baynesville Electronic Inc.
Computers Etc.
Tufts Electronics
Electronics Supply Center
Computer Mart Inc.
RM Electronics Inc.
Airway Electronic Communications
Hobby Electronic Center
Micro Computer World
Fulton Radio Supply Co.
The Computer Store
Computers For You
Lafayette Radio
Lakeland Specialty Electronics
MINNESOTA
Altair Computer Center
Du/uth
AMF Electronics
Eagan
Microcomputer Systems
Hopkins
MISSOURI
Atlanta Computer Mart
El Dorado Springs
Parkville
Delcoms Hawaii
Integrated Circuit Supply
MONTANA
Billings
Audiotromcs
NEBRASKA
Lincoln
Lafayette Radio
North Platte
Itty Bitty Machine Co.
Omaha
Tri-State Electronic Corp.
NEVADA
Computer Systems Center
Las Vegas
Moyer Electronics
NEW JERSEY
Tri-State Electronic Corp.
Bay v Hie
Computer Land
Bricktown
Spectronics Inc.
Cherry Hill
Imperial Computer Systems
Hoboken
Data Domain
Paterson
Pompton Lake
Aero Electronics Corp.
Quantum Computer Works
Ramsey
Bridge Elec. Computer Center
Computer Store of Davenport
NEW YORK
Electronix Limited
Albany
Kingston
Electronic Surplus Sales
New York
Northwest Radio of Duluth
Computer Room Inc.
Heathkit Electronic Center
Beckman Electronics
Computer Workshop
of Kansas City
Conley Radio Supply
Altair Computer Center
Scott Radio Supply Corp.
Omaha Computer Store
Cen wry 23
,.R.S. Communications Services
Radio Shack Associate Store
The Computer Emporium
Hoboken Computer Works
All-tronics
Computer Corner
of New Jersey
Typetronic Computer Store
Fort Orange Electronics
Greylock Electronics
Computer Mart of New York
NEW YORK (Continued)
Rensselaer
Rochester
Troy
White Plains
Williamsville
NORTH CAROLINA
Durham
Greensboro
Raleigh
OHIO
Bucyrus
Cincinnati
Columbus
Dayton
Reynoldsburg
OKLAHOMA
Guymon
Oklahoma City
Tulsa
OREGON
Albany
Be a vert on
Coos Bay
Med ford
Ontario
Portland
Salem
PENNSYLVANIA
Drexel H : li
Com-Tech Electronics
2001 Microsystems
Trojan Electronics
The Computer Corner
Hirsch Sales Co.
Futureworld
Byte Shop
Byte Shop of Raleigh
Mead Electronics
Digital Design
Heathkit Electronic Center
Altair Computer Center
Universal Amateur Radio
Sound Service
Bits, Bytes & Micros
High Technology
Oregon Ham Sales
Altair Computer Center
Herrick Electronix
Portland Radio Supply
Miller Electronics
Portland Radio Supply
Computer Pathways
Erie
Hershey
Murraysville
Phoenixville
Pittsburgh
Wilkesbare
York
RHODE ISLAND
Cranston
Paw tucket
SOUTH CAROLINA
North Charleston
TENNESSEE
Chattanooga
Clarksville
Knox vi lie
Memphis
Memphis
Oak Ridge
TEXAS
Amari/lo
Dallas
Houston
Houston
San Antonio
UTAH
Pro vo
VIRGINIA
Alexandria
Alexandria
Charlottes\
Hampton
Richmond
Roanoke
Springfield
Virginia Beach
WASHINGTON
Beitevue
Kennewick
Longview
Pasco
Richland
Seattle
Seattle
Spokane
WEST VIRGINIA
Morgan town
Morgan town
Ripley
'Hie
Kass Electronic Distributors
Warren Radio
Microcomputer Systems Inc.
Computer Workshop
of Pittsburgh
Stevens Electronics
Ty dings Company
Hamline Electronics
G. Y.C. Company
Jabbour Electronics City
Jabbour Electronics City
Technical Services Inc.
William's Data Comp Division
Masstronics
Byte Shop
Bluff City Electronics
Sere-Rose & Spencer Electronics
Computer Denn
Computer Encounters Inc.
CompuShop
Altair Computer Center
Interactive Computers
Sherman Electronics Supply Inc.
Alpine Electronic Supply Co.
Computer Hardware Store
Computers Plus Inc.
Lafayette Electronics
Lafayette Radio
Computers- To-Go
The Computer Place
Computer Workshop
of North Virginia
Heathkit Electronic Center
Altair Computer Center
C & J Electronics
Progress Electronics
Riverview Electronics
C & J Electronics
C-Com
Empire Electronics
Personal Computers
The Computer Corner
Electro Distributing Co.
Thompson's Radio Shack
CANADA
Alberta (Calgary)
Ontario (Williowdale)
Quebec (Montreal}
PANAMA
Panama City
Panama City
FRANCE
Paris
SINGAPORE
The Computer Shop
Home Computer Centre
Wang's Microcenter
Electrotecnia S.A.
Sonitel, S.A.
Computer Boutique
Inter-Trade (PTE) Ltd.
SEE YOUR LOCAL J^ DEALER TODAY!
For Dealer Information, write or phone JIM-PAK® 1021 Howard Ave., San Carlos, California 94070 (415) 592-8097
Circle 201 on inquiry card.
t
THE COMPLETE
K
m
LookToThe North Star HORIZON Computer.
HORIZON™— a complete, high-performance microprocessor
system with integrated floppy disk memory. HORIZON is
attractive, professionally engineered, and ideal for business,
educational and personal applications.
To begin programming in extended BASIC, merely add a CRT
or hard-copy terminal. HORIZON-1 includes a Z80A processor,
16K RAM, minifloppy™ disk and 12-slot S-100 motherboard
with serial terminal interface — all standard equipment.
WHAT ABOUT PERFORMANCE?
The Z80A processor operates at 4MHZ — double the power of
the 8080. And our 16K RAM board lets the Z80A execute at
full speed. HORIZON can load or save a 10K byte disk program
in less than 2 seconds. Each diskette can store 90K bytes.
AND SOFTWARE, TOO
HORIZON includes the North Star Disk Operating System and
full extended BASIC on diskette ready at power-on. Our BASIC,
now in widespread use, has everything desired in a BASIC, in-
cluding sequential and random disk files, formatted output, a
powerful line editor, strings, machine language CALL and more.
EXPAND YOUR HORIZON
Also available — Hardware floating point board (FPB); addi-
tional 16K memory boards with parity option. Add a second
disk drive and you have HORIZON-2. Economical serial and
parallel I/O ports may be installed on the motherboard. Many
widely available S-100 bus peripheral boards can be added to
HORIZON.,.
QUALITY AT THE RIGHT PRICE
HORIZON processor board, RAM, FPB and MICRO DISK SYS-
TEM can be bought separately for either Z80 or 8080 S-100 bus
systems.
HORIZON-1 $1599 kit; $1899 assembled.
HORIZON-2 $1999 kit; $2349 assembled.
16K RAM -$399 kit; $459 assembled; Parity option $39 kit; $59
assembled. FPB $259 kit; $359 assembled. Z80 board $199 kit;
$259 assembled. Prices subject to change. HORIZON offered
in choice of wood or blue metal cover at no extra charge.
Write for free color catalogue or visit your local computer store.
North Star * Computers
2547 Ninth Street • Berkeley, California 94710 • (415) 549-0858
Circle 285 on inquiry card.